如何从Android应用程序连接到多个firebase数据库

Rel*_*elm 14 android firebase firebase-realtime-database

我正在尝试在Firebase中创建一个项目,该项目将负责所有应用程序的一个常见问题.

也就是说,我想创建应用程序,然后让这些应用程序访问项目的特定Firebase数据库.

查看Firebase Android文档,我找不到使用以下方法将数据发送到另一个项目中的另一个firebase数据库的方法,但是引用是另一个项目.

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("example");
        ref.push().setValue(d).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                finish();
            }
        });
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 30

您需要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);
Run Code Online (Sandbox Code Playgroud)

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

  • 我把它放在试试中.尝试{FirebaseApp app = FirebaseApp.initializeApp(c,options,"app"); 返回FirebaseDatabase.getInstance(app); } catch(IllegalStateException e){return FirebaseDatabase.getInstance(FirebaseApp.getInstance("app")); } ///并且有效. (2认同)