【问题标题】:Adding Multiple Databases to a Single android app [duplicate]将多个数据库添加到单个 android 应用程序 [重复]
【发布时间】:2017-10-29 10:09:32
【问题描述】:

我目前正在尝试向我的应用程序添加第二个 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 文档,但我似乎找不到任何有用的东西!

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

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案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 密钥位于名为 api_key 的属性下,应用程序 ID 来自名为 mobilesdk_app_id 的属性,数据库 URL 来自名为 firebase_url 的属性。

    【讨论】:

    • 嗨,我实际上指的是类似于“mRef = FirebaseDatabase.getInstance().getReference();”之类的结构。这样我就可以使用“mRef”来写入和读取数据 例如,mRef.child("eg1").child("eg2").setValue("Testing");是否可以创建利用新数据库的 mRef2?对不起,如果我的解释不够清楚!
    • @jai:不要只是复制来自another question 的答案。如果答案相同,则问题重复。
    • 嗨@FrankvanPuffelen!对不起,如果这个问题是重复的,但是我将如何从第二个数据库中读取/写入。目前我正在使用 mRef.child("testing123").setValue("123");写入第一个数据库,mRef 为 mRef = FirebaseDatabase.getInstance().getReference();是否会有类似 mRef2 之类的另一个 firebase 参考的内容?我在官方 firebase 文档中找不到任何相关内容
    • 确保您从第二个应用实例中获得对第二个数据库的引用。 mRef2 = secondaryDatabase.getRef().
    • @FrankvanPuffelen 我刚刚对其进行了测试,它可以工作!非常感谢,我真的很感激:D
    猜你喜欢
    • 2017-09-29
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2011-06-01
    相关资源
    最近更新 更多