我正在考虑在过去几天处理Firebase通知,但我想为以下几个问题提供一些答案:
-
Ionic2 是否支持 Firebase 通知?
-
当我的应用程序关闭时,通知会显示在屏幕顶部还是应该在后台工作?
-
Firebase 通知是按时发送还是可能需要很长时间?
-
如果我假设 Ionic 2 可以发送私人通知(仅向我的设备发送(,那么我可以为所有应用程序用户发送公共通知吗?
如果所有问题的答案都是"是",希望您给我任何可能对我有帮助的有用链接(如果您有时间(
除了加布里埃尔的回答:
-
通知的默认行为是让它显示在屏幕顶部。我以前没有在Ionic上工作过,但是AFAIK,这种行为应该与Android进行比较。
话虽如此,您应该参考 FCM 文档的处理消息部分。
-
有一些因素需要考虑,可能会影响设备接收消息所需的时间,但作为FCM的行为,它会尝试尽快发送消息(请参阅我的回答 这里(.
-
将进一步逐项列出:
- 仅限特定设备 - 是的。发送消息时,只需指定应接收该消息的注册令牌。
- 所有设备 - 是的。您可以使用 Firebase 通知控制台。但是,如果您打算使用 REST API 发送消息,则必须确保设备已根据自定义全局主题订阅。
关于Gabriel提到的设备到设备,我认为它应该被表述为特定设备的服务器。
-
是的,它确实如此,并且可以与FCM(Firebase Cloud Messaging,又名GCM - Google Cloud Messaging(配合使用。它支持通过 HTTP 客户端订阅主题和设备到设备通知。主题订阅和设备到设备都需要 FCM 插件。
-
是的,它们将作为任何推送通知出现在您的设备屏幕顶部,您只需要编写收到通知后的行为方式,例如在点击通知时执行某些操作,或者在收到通知并且应用程序已经打开时执行某些操作(前台(,这一切都取决于您。
-
它按时发送,我从未遇到过延迟问题,发送通知所需的时间越长,我在设备中收到的时间是 10 秒。但据我所知,它会将您的通知"存储"24小时,因此,如果服务器出现故障或发生某些事情,则通知的生命周期为24小时。
-
如第一个答案中所述,您可以让用户订阅主题。假设您希望一个主题发送消息,以便所有用户都可以接收,您可以有一个
all
主题,或者只有一个用于登录用户,一个仅用于购买产品的用户,您甚至可以获取所有用户令牌并逐个发送,但让他们订阅主题要好得多。可以通过 Firebase 项目控制台发送主题通知。设备到设备由应用代码发送。
要向设备发送数据,您需要一个令牌,该令牌由 FCM 插件(上面的链接(提供,您需要将此令牌存储在某个位置,例如 Firebase 上的用户节点中。我通常使用设备插件提供的用户设备 ID 来获得他的令牌,因为用户可以拥有多个设备并全部登录,这将防止令牌覆盖。
我不知道关于使用 Firebase 配置 FCM 的好教程,如果我找到什么,我会编辑问题并为您添加,但坚持使用 ionic 原生链接和 FCM 插件 github 页面。
希望这有帮助。