【问题标题】:Is it possible to send messages through Firebase Cloud Messaging (FCM) to offline users?是否可以通过 Firebase Cloud Messaging (FCM) 向离线用户发送消息?
【发布时间】:2023-03-28 13:28:01
【问题描述】:

我正在开发一个渐进式 Web 应用程序 (PWA),我需要通过推送消息发送重要提醒。用户即使离线也应该收到它们。 是否可以为此使用Firebase Cloud Messaging(FCM)(可能预加载消息或类似的东西?)还是我需要获得不同的离线路线?

【问题讨论】:

  • 用户离线是什么意思?如果他们的设备上没有网络/小区信号,就不可能向他们传递任何消息。因此,虽然您可以发送它们(例如,从 Renaud 回答的 Cloud Functions 中),但用户在重新上线之前不会收到这些消息。

标签: firebase firebase-cloud-messaging offline


【解决方案1】:

根据下面 AL 的 cmets 和上面 Frank 的评论改编

可以通过 Firebase 云消息 (FCM) 向离线的设备发送“推送消息”,但是用户只会在设备再次在线时看到消息 。如果设备离线,它不能立即接收来自“外部世界”的任何(推送)消息。如果您想触发一些对离线设备立即可见的提醒,您必须在设备上本地进行,而不是依赖“外部世界”的推送.

因此,话虽如此,如果您想使用 Firebase Cloud Messaging 发送消息,您可以使用 Cloud Functions 来实现,即来自“受信任的环境”。看看这个官方的 Firebase Cloud Function 示例:https://github.com/firebase/functions-samples/tree/master/fcm-notifications

您可以在以下情况下触发此云功能:新项目被保存在数据库(实时数据库或 Firestore)中,或现有项目被修改/删除,或文件被上传到存储等。

【讨论】:

  • FCM 需要客户端的可靠网络连接才能接收消息。
  • @AL 看看上面 Frank 的评论。如果没有某些连接,智能手机将无法接收通知或消息。
  • 没错。因此,我给了它的赞成票。问题是“我可以离线使用 FCM 吗?”,它指向客户端应用程序,而您的回答是“yes”。你只是误解了你的答案还是我错过了什么?
  • @AL 我不知道这是否是一种误解,但是在写这个答案时,我假设 OP 知道消息只能到达连接恢复的设备。事实上,OP提到了“推送消息”,所以我不认为他/她的意思是这些消息应该由应用程序在本地自动生成。但是,我同意这个假设在我的回答中没有明确说明。完整地说,当我看到弗兰克的评论时,我认为我没有什么要补充的。请注意,我不是在争论或“谈判”,我对否决票没有任何问题:-)
  • @AL。感谢您的建设性cmets!我已经更新了答案。希望对未来的读者来说更清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-14
  • 2016-09-22
  • 1970-01-01
  • 2016-09-17
  • 2018-08-07
  • 1970-01-01
相关资源
最近更新 更多