【问题标题】:Swift - FireStore/FCM (Firebase Cloud Messaging)Swift - FireStore/FCM(Firebase 云消息传递)
【发布时间】:2021-01-19 04:31:19
【问题描述】:

我已将 Firebase Cloud Messaging 整合到我的应用中。搞砸了之后,我有点理解它是如何运作的前提。因此,我构建了我的代码,以便在用户注册时存储 FCM 令牌。创建两个帐户后,我意识到用户的两个 FCM 令牌是相同的。

在线查看并整理了这个问题,现在我可以在启动时刷新令牌,并且在用户最初注册时仍然附加新的 FCM 令牌。

所以现在,我问一个问题 - 用户是使用 fcmToken 字段创建的(我可以在我的代码中引用),但是,由于每次启动时都会生成一个新令牌,因此每次渲染令牌时都会生成一个新令牌( s) 存储对每个用户没用?或者我仍然可以使用 fcmToken 推送给特定用户吗?

我在网上查过,但似乎找不到答案。

【问题讨论】:

    标签: firebase firebase-cloud-messaging


    【解决方案1】:

    FCM 令牌不会唯一标识单个最终用户。它们识别特定设备上应用程序的特定安装。使用该令牌发送时,谁登录到应用程序(或者是否有人登录)并不重要 - 应用程序仍会收到它并需要弄清楚如何处理它。给定用户的登录状态,由您决定如何处理该消息。如果您希望您的应用可以让多个用户在单个设备上共享一个应用,那么您可能需要在有效负载中发送一些内容以确定该消息的目标对象(如有必要)。

    【讨论】:

    • 如上所述,“它们识别特定设备上应用程序的特定安装”。并非所有应用程序都将共享相同的令牌。否则那将是精神错乱。但是对于您的一个应用,它在每台设备上都是独一无二的,并且可能会随着时间而改变。
    • 啊,是的,我已经读过了。根据我的应用程序的结构方式,理论上每台设备只有一个帐户。当然,您可以注销并创建一个新帐户。如果需要,刷新令牌的最佳情况是什么?
    • 这会发生在你身上。您需要按照说明操作,以确保您的应用在更新发生时收到更新。
    【解决方案2】:

    @doug 很好的答案,但是当人们共享设备时存在一个常见的实现问题,所以请添加警告,例如:通常只有最后登录的用户应该收到推送通知,否则他可以看到来自该人的消息之前登录过。您的后端不仅应该存储用户登录的所有设备,还应该存储最后一个活动用户所在的每个设备,并在发送推送时检查这一点。注销时是否收到推送的问题也是一个常见的话题。

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 1970-01-01
      • 2019-07-19
      • 2019-05-14
      • 2019-06-19
      • 1970-01-01
      • 2017-01-25
      • 2020-01-29
      相关资源
      最近更新 更多