【问题标题】:how to send push notification via firebase cloud messaging (quickstart)?如何通过 Firebase 云消息发送推送通知(快速入门)?
【发布时间】:2021-09-02 07:31:27
【问题描述】:

我试图了解 FCM(推送通知)的工作原理...这与 Web 应用程序非常不同...

我做了什么→

  1. 在 Firebase 中注册新项目
  2. 添加Appcom.google.firebase.quickstart.fcm并下载google-services.json
  3. 在 Android Studio 中使用 google-services.json 构建 App
  4. 在我的设备上安装 APK
  5. 转到https://console.firebase.google.com/project/{PROJECT_NAME}/notification 并发送新通知
  6. 然后……什么也没发生

所以我的问题是

  1. 据我所知,这里有两种发送通知的方法:a) 使用设备令牌并发送直接通知,b) 在客户端订阅设备到主题。
    但是
    a) 当我尝试在 Firebase 控制台中创建 New notification 时,这里没有我可以插入设备令牌的字段。这里是Target → Target user if → App → com.google.firebase.quickstart.fcm。那么我是否需要知道设备令牌,或者我可以向所有在其设备上安装了我的应用的客户发送通知?
    b) 当我尝试在weather 主题上发送消息时,什么也没有发生。即使我按下按钮Subscribe to weather(在手册中你可能会找到Subscribe to News,但实际版本按钮是weather
  2. 有什么方法可以检查(尤其是在服务器端)我的设备是否在 FCM 中注册?
  3. 在大量设备(例如 50000 台)上以最短时间延迟发送相同内容的最有效方法是什么?尝试循环访问设备令牌 (1000 tokens per request) 或使用主题?还有其他方法吗?
  4. 实际上我的后端是 AWS SNS 和 FCM,所以如果你能回答在 SNS + FCM 的情况下最有效的方法,那就太棒了
  5. 我不知道...有什么建议吗?我是一名网络开发人员(REST 等),对移动应用的经验为零

【问题讨论】:

    标签: android firebase push-notification firebase-cloud-messaging


    【解决方案1】:

    1- 您需要将当前设备令牌存储在数据库中,然后遍历每个设备令牌以发送消息。

    主题需要从客户端订阅,使用受限

    2 - 您应该将其存储在数据库中,如果 FCM 过期,发送 FCM 将产生错误,您必须将其删除并等待客户端重新发送新令牌

    3 - 主题是常见的做法,让每个设备都收听“全局”主题,但存在原生延迟,因为 FCM 旨在实现最大输出而不是时间敏感性。为此,您需要专门处理高速消息的外部服务。

    4 - 您可以调用云函数来调用其他 firebase 服务,甚至数据库上的其余 API 和 onTrigger 侦听器也是有效的

    5 - FCM 很棒,但并不是最好的,因为它是作为通用解决方案创建的。建议组合不同的 CM 服务,特别是如果您有时间敏感的需求。但在 FCM 是免费的情况下,它们确实是有代价的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-18
      • 2017-10-04
      • 1970-01-01
      • 2020-12-09
      • 2019-08-25
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多