【问题标题】:How to access data of another firebase project如何访问另一个 Firebase 项目的数据
【发布时间】:2017-07-10 12:38:47
【问题描述】:

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

【问题讨论】:

  • 您的数据是否从您的应用更新到 Firebase 控制台?您所说的其他应用是指其他设备中的同一个应用还是实际上任何其他应用?
  • 是的,它在控制台上更新,通过其他应用程序意味着任何其他应用程序
  • 其他应用只有在 Firebase 控制台的同一个项目中添加才能访问同一个数据库。
  • 刚刚更新了我的问题,实际上我无法引用 firebase 数据库,以便我可以调用监听器
  • 您能详细说明一下吗?因为我知道如果数据库的规则是读写都意味着没有身份验证,那么我们可以引用该数据库并开始监听它而不添加或任何东西,我对吗?

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


【解决方案1】:

对于您在 Android Studio 中创建并希望与特定 Firebase 项目一起使用的每个 Android 应用,您也应该在 Firebase 控制台中创建一个 Android 应用。您可以通过转到overview page of your project 并单击“添加另一个应用程序”来执行此操作。

【讨论】:

【解决方案2】:

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

【讨论】:

    【解决方案3】:

    你的代码应该是这样

    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

    【讨论】:

    • 但是如果“my-project.firebaseio.com”来自一个firebase-project并且android应用程序在另一个firebase-project中,这会起作用吗?
    • @rehman_00001 但是据我所知,您需要放弃 那个数据库的身份验证,这不好,因为任何人都可以访问它( 获得许可)正如我在这篇文章中所说的那样。我已经很久没有使用 Firebase 了,所以我真的不知道他们是否解决了这个问题。
    • 感谢您的回复@X Stylish。这有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2023-03-06
    • 2017-02-05
    • 2019-07-31
    相关资源
    最近更新 更多