将多个数据库添加到单个Android应用程序

时间:2017-05-29 07:23:21

标签: android firebase firebase-realtime-database

我目前正在尝试将第二个firebase实时数据库添加到我的应用程序中。我正在遵循Firebase博客中的本教程,这正是我想要的。我目前已连接到其他数据库。但是我无法创建参考

例如: mRef = FirebaseDatabase.getInstance()。getReference();

我不确定如何初始化新数据库以利用其中的信息。

        mRef = FirebaseDatabase.getInstance().getReference();
        Intent intent = getIntent();

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setApplicationId("AppID") // Required for Analytics.
                .setApiKey("APIKEY") // Required for Auth.
                .setDatabaseUrl("DatabaseURL") // Required for RTDB.

                .build();
        FirebaseApp.initializeApp(this, options, "secondary");

// Retrieve my other app.
        FirebaseApp app = FirebaseApp.getInstance("secondary");
// Get the database for the other app.
        FirebaseDatabase secondaryDatabase = FirebaseDatabase.getInstance(app);

我已尝试过,我可以使用app.getOptions.getDatabaseURL获取新数据库的URL,但我无法使用它来访问新数据库中的信息。

我还阅读了关于Android的Firebase文档,但我似乎找不到有用的东西!

任何帮助将不胜感激!!!谢谢:))

1 个答案:

答案 0 :(得分:1)

使用代码中的显式选项初始化第二个FirebaseApp对象:

FirebaseOptions options = new FirebaseOptions.Builder()
        .setApiKey("AI...j0")
        .setApplicationId("1:5...e0")
        .setDatabaseUrl("https://myapp.firebaseio.com")
        .build();
FirebaseApp secondApp = FirebaseApp.initializeApp(getApplicationContext(), options, "second app");
FirebaseDatabase secondDatabase = FirebaseDatabase.getInstance(secondApp);
secondDatabase.getReference().setValue(ServerValue.TIMESTAMP);

我从第二个项目的google-services.json获得了配置值。 API Key位于名为api_key的属性下,Application ID来自名为mobilesdk_app_id的属性,数据库URL来自名为firebase_url的属性。