我在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"
}
}
}
答案 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