来自两个不同Firebase应用程序的通知和数据库在一个应用程序中

时间:2016-10-11 21:31:18

标签: android firebase firebase-realtime-database firebase-cloud-messaging

所以这是我的情况,我已连接到firebase控制台上的 ApplicationA 项目来处理通知。但我也希望从 ApplicationB 项目中收听数据库。

问题是我只能有一个google-services.json,我必须在一个或另一个之间做出选择,但不能两者兼而有之。所以,我的问题是,我如何指定从另一个应用程序中监听来自google-services.json的数据库。

自更新以来,项目链接由json在内部处理。在更新之前,我能够粘贴我想要收听的数据库的整个链接。

以下是我正在侦听某些数据库路径的方式:

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    fireActionUpdate = database.getReference("org/" + nameId + "/action");
    fireRuleResponse = database.getReference("org/" + nameId + "/notify");

之前:

    fireActionUpdate = new Firebase("https://yellow.firebaseio.com/org/" + nameId + "/action");
    fireRuleResponse = new Firebase("https://yellow.firebaseio.com/org/" + nameId + "/notify");

1 个答案:

答案 0 :(得分:2)

此解决方案是,如果您要将两个应用程序绑定到同一个Firebase Database,但又想使用FCM等所有功能。

请按以下步骤操作

  1. 从firebase控制台下载google-services.json两个项目。
  2. 假设应用程序A 连接到主数据库,json文件连接到 file1 ,类似于应用程序B ,数据库是子数据库文件2
  3. 转到文件1 并复制除project_number&之外的标题。两个应用的project_id. Basically keep the Firebase_url && storage_bucket`相同。

  4. 同时保持两个项目的client idapi key相同。

  5. 现在你已经准备好了。

    要像之前一样连接Firebase database,请按照以下代码

            DatabaseReference baseRef = FirebaseDatabase.getInstance().getReferenceFromUrl("https://<APP_NAME>.firebaseio.com/");
    

    照常执行其余操作。

    希望他们不会推动另一次更新来打破这个规则:D

    注意:这些更改已经过测试,我将其用于我的2个单独的应用程序,用于集成FCM的消息传递

    对于我最终遇到的一些已知问题,您可以查看我发布的代码Android not receiving Firebase Push Notification - MismatchSenderId

    快乐编码!!