当前位置: 首页 > 知识库问答 >
问题:

Firebase在实时数据库发生变化时发送通知

严兴旺
2023-03-14

我发现了两种可能的方法来在Firebase实时数据库(例如在聊天应用程序中)发生更改后交付通知:

>

  • 如本博文所述,可以对Firebase使用云功能。

    我在这里还发现了另一种更简单的方法,只使用一个监听数据库变化的android服务。

    在尝试实施其中一种方法之前,我想知道这两种方法的利弊,因为第二种方法似乎比第一种方法简单得多。

  • 共有1个答案

    周弘毅
    2023-03-14

    https://www.codementor.io/sundayakinsete/firebase-real-time-notifications-app-to-app-opkwbo6ba中描述的Android Service解决方案有严重的限制:

    1. 当应用程序未运行时,它不起作用(请记住,当用户将应用程序放在后台时,系统可能会决定终止它以释放设备内存)
    2. 它使用额外的电池、RAM和网络数据,以保持服务主动监听远程数据库更改
    3. 运行该应用程序的每个设备,即使是在后台,也会达到与数据库同时连接100,000个的极限。
    4. 它在IOS上不工作

    另一方面,如果您使用Firebase云消息传递(通过云功能或自定义服务器):

    1. 即使应用程序关闭,您也可以接收通知
    2. 您不会消耗额外的电池或CPU
    3. 对于实际在前台使用该应用程序的用户,可以使用100,000个同时连接的数据库限制。
    4. 它可以在iOS和Web上工作
     类似资料:
    • 有两种类型的应用程序,一种将由用户使用,另一种将由我(即所有者)使用。因此,每当任何用户将内容(数据)添加到Cloud FiRecovery数据库时,我都希望收到通知。简而言之,每当Cloud FiRecovery数据库发生变化时,如何发送通知?

    • 实时数据库触发器在写入创建时是排队还是线程化?

    • 我正在尝试使用Firebase云功能创建消息推送。以下是我的代码: 我得到以下错误: 错误:提供给sendToDevice()的注册令牌必须是非空字符串或非空数组。在FirebaseMessagingeror。FirebaseError[作为构造函数](/srv/node_modules/firebase admin/lib/utils/error.js:42:28)位于FirebaseMessa

    • 这是舱单 这是我的注册令牌类 这是我的Firebase服务类

    • 我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire