firebase实时数据库-在聊天应用程序中实现推送通知



我正在使用firebase实时数据库构建一个聊天功能,其中一个整数变量存储一个数字(int online),当一个聊天由人a打开时,它向数据库添加1,然后如果另一个人B在线并打开聊天,则它添加另一个1。所以,如果数字是2,我知道他们都在线并且在聊天应用程序中处于活动状态,所以不需要发送推送通知。

但是我现在面临的问题是,如果用户关闭应用程序而没有按下聊天应用程序的内置后退按钮(当按下时减去1,当两个用户都不活动时变为0),那么数据库中的数字不会改变,这会导致推送通知逻辑中的错误,因为当人a发送消息时,代码假设人B在线。如何解决这个问题?请有人帮助我了解推送通知一般是如何工作的?

首先,发送推送通知是完全免费的。唯一的成本是由执行代码发送它们的后端(云函数)产生的。

其次。如果你的用户在应用程序中,则不会显示推送通知。即使你想在你的应用程序中显示一些东西,你也需要处理onMessageReceived,当用户在应用程序中时向他显示一些东西。

这意味着你没有必要做你想做的事情。就像没有用户在应用程序中一样发送所有消息。甚至检查每个用户是否在线并仅在他离线时发送消息比发送给每个人都要花费更多。

我建议你阅读一下文档,对FCM有更深入的了解,如果你有任何具体的问题,我们都可以帮助你:)

最新更新