我正在尝试使用 Firebase 构建一个 android 应用程序,该应用程序需要在一个应用程序中使用两个单独的数据库(教师和学生)。我在整个互联网上搜索了解决方案,但我得到的只是这个解决方案-一个应用程序中的多个 Firebase 项目,这似乎是一个很好的解决方案,但我不明白。
那么,如何在一个应用程序中合并两个 firebase 项目?
我正在尝试使用 Firebase 构建一个 android 应用程序,该应用程序需要在一个应用程序中使用两个单独的数据库(教师和学生)。我在整个互联网上搜索了解决方案,但我得到的只是这个解决方案-一个应用程序中的多个 Firebase 项目,这似乎是一个很好的解决方案,但我不明白。
那么,如何在一个应用程序中合并两个 firebase 项目?
是的,您可以按照该指南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);
然后,您只需像以前一样处理该项目。
您提到的示例可以按以下方式使用。您可以在 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
您不再需要实施该链接中描述的社区解决方案。
据此:_
有时您需要使用相同的 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");
通过这种方式,您可以连接到备用实时数据库。