首页 > 解决方案 > 在聊天应用程序中实现推送通知

问题描述

我正在使用firebase实时数据库构建一个聊天功能,其中一个整数变量存储一个数字(在线整数),当人A打开聊天时,它会将1添加到数据库中,然后如果另一个人B上线并打开聊天,那么它添加另一个 1。因此,如果数字是 2,我知道两者都在线并且在聊天应用程序中处于活动状态,因此无需发送推送通知。

但是我现在面临的问题是,如果用户在没有按下聊天应用程序的内置后退按钮的情况下关闭应用程序(按下时减去 1,当两个用户都处于非活动状态时变为 0),那么数据库中的数字未更改,这会导致推送通知逻辑出错,因为当人员 A 发送消息时,代码假定人员 B 在线。这怎么可能解决?请有人帮助我了解推送通知通常是如何工作的?

标签: firebase-realtime-databasepush-notificationonesignal

解决方案


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

第二。如果您的用户在应用程序中,则不会显示推送通知。即使您想在您的应用程序中显示一些内容,您也需要处理在onMessageReceived用户在应用程序中时向用户显示一些内容。

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

我建议稍微阅读一下文档以更深入地了解 FCM,如果您有任何具体问题,我们都可以为您提供帮助 :)


推荐阅读