0

我正在尝试使用 Firebase 构建一个 android 应用程序,该应用程序需要在一个应用程序中使用两个单独的数据库(教师和学生)。我在整个互联网上搜索了解决方案,但我得到的只是这个解决方案-一个应用程序中的多个 Firebase 项目,这似乎是一个很好的解决方案,但我不明白。

那么,如何在一个应用程序中合并两个 firebase 项目?

4

3 回答 3

1

是的,您可以按照该指南https://firebase.google.com/docs/projects/multiprojects#java进行操作。

基本上,您需要手动启动提供配置的 Firebase 应用程序

        // [START firebase_options]
    // Manually configure Firebase Options. The following fields are REQUIRED:
    //   - Project ID
    //   - App ID
    //   - API Key
    FirebaseOptions options1 = new FirebaseOptions.Builder()
            .setProjectId("my-firebase-project")
            .setApplicationId("1:27992087142:android:ce3b6448250083d1")
            .setApiKey("AIzaSyADUe90ULnQDuGShD9W23RDP0xmeDc6Mvw")
            // setDatabaseURL(...)
            // setStorageBucket(...)
            .build();
    FirebaseOptions options2 = new FirebaseOptions.Builder()
            .setProjectId("my-firebase-project")
            .setApplicationId("1:27992087142:android:ce3b6448250083d1")
            .setApiKey("AIzaSyADUe90ULnQDuGShD9W23RDP0xmeDc6Mvw")
            // setDatabaseURL(...)
            // setStorageBucket(...)
            .build();
    // [END firebase_options]


    // [START firebase_secondary]
    // Initialize with secondary app
    FirebaseApp.initializeApp(this /* Context */, options1, "first");
    FirebaseApp.initializeApp(this /* Context */, options2, "secondary");


    FirebaseApp first = FirebaseApp.getInstance("first");
    FirebaseApp secondary = FirebaseApp.getInstance("secondary");

您可以从google-service.json

在此处输入图像描述

在此处输入图像描述

稍后您可以从中获取数据库FirebaseApp,例如

FirebaseDatabase secondaryDatabase = FirebaseDatabase.getInstance(secondary);

然后,您只需像以前一样处理该项目。

于 2021-01-10T17:10:54.250 回答
0

您提到的示例可以按以下方式使用。您可以在 firebase db 中创建两个主表,然后您可以通过以下方式进行操作

val reference = FirebaseDatabase.getInstance().getReference()
val teacher = reference.child("teacher")//refers to the teacher table
val student = reference.child("student")//refers to the student table
于 2021-01-10T17:38:53.803 回答
0

您不再需要实施该链接中描述的社区解决方案。

据此:_

有时您需要使用相同的 API 访问不同的项目 - 例如,访问多个数据库实例。在大多数情况下,有一个中央 Firebase 应用程序对象来管理所有 Firebase API 的配置。该对象作为正常设置的一部分进行初始化。但是,当您想从单个应用程序访问多个项目时,您需要一个不同的 Firebase 应用程序对象来单独引用每个项目。由您来初始化这些其他实例。

您需要首先创建一个 Firebase 选项对象来保存 Firebase 应用程序的配置数据,如下所示:

// Manually configure Firebase Options. The following fields are REQUIRED:
//   - Project ID
//   - App ID
//   - API Key
FirebaseOptions options = new FirebaseOptions.Builder()
    .setProjectId("my-firebase-project")
    .setApplicationId("1:27992087142:android:ce3b6448250083d1")
    .setApiKey("AIzaSyADUe90ULnQDuGShD9W23RDP0xmeDc6Mvw")
    // setDatabaseURL(...)
    // setStorageBucket(...)
    .build();

初始化此选项对象后,您可以使用它来配置额外的 Firebase 应用程序实例。

例如,如果您有另一个名为“otherApp”的应用程序实例,则可以执行以下操作:

// Initialize with secondary app
FirebaseApp.initializeApp(this /* Context */, options, "otherApp");

// Retrieve secondary FirebaseApp
FirebaseApp secondary = FirebaseApp.getInstance("otherApp");

通过这种方式,您可以连接到备用实时数据库。

于 2021-01-10T17:06:42.500 回答