如何访问另一个firebase项目的数据

时间:2017-07-10 12:38:48

标签: java android firebase firebase-realtime-database nosql

我在firebase上创建了实时数据库,从一个Android应用程序发送数据和在其他应用程序中(第二个单独的应用程序不同于应用程序即时使用发送数据,如果数据发生变化,我只想重新接收)我想收到那个数据,我怎么能这样做,因为如果我试图在onCreate

中这样访问
FirebaseApp.initializeApp(this);

DatabaseReference data = FirebaseDatabase.getInstance()
            .getReference("https://my-project.firebaseio.com/nodeName");

我第一次使用initialzeApp也尝试从发送数据的应用程序添加google-service.json,它说它与项目名称不同,我怎么能这样做firebase结构是这样的

{ https://my-project.xxxx somenumbers
    {
        node{
               lat : "value"
               lng : "value"
            }
    }
}

3 个答案:

答案 0 :(得分:3)

对于您在Android Studio中创建的每个要与特定Firebase项目一起使用的Android应用,您还应该在Firebase控制台中创建一个Android应用。您可以转到overview page of your project并点击"添加其他应用"来完成此操作。

答案 1 :(得分:0)

在Firebase控制台中,可以选择在同一项目中添加多个应用。属于同一项目的所有应用程序都可以访问相同的Firebase数据库。每个应用程序都有自己的.json文件连接到同一个项目。因此,如果您想从任何其他应用程序访问数据库,则需要在控制台上将该应用程序与同一Firebase项目连接。要获取值,请对节点进行引用并对其应用值更改侦听器。 Official documentation会帮助你

答案 2 :(得分:0)

您的代码应该像这样

DatabaseReference otherDB_data = FirebaseDatabase
.getInstance("https://my-project.firebaseio.com/nodeName")
            .getReference();

而不是

DatabaseReference otherDB_data = FirebaseDatabase.getInstance()
            .getReference("https://my-project.firebaseio.com/nodeName");

并且不要忘记在您的应用中使用authenticate来获取实时数据库访问权限

  

注意:如果实时数据库规则类似于

,则身份验证无效
{
  "rules": {
    ".read": "auth == null",
    ".write": "auth == null"
  }
}

所以每个人都已获得许可

  

您可以根据需要多次执行此操作,但只能拥有一个   一次连接到任何给定的数据库实例。

来源:Firebase Documentation - Connect your app to multiple database instances