【问题标题】:Firebase push notifications iOSFirebase 推送通知 iOS
【发布时间】:2018-06-18 02:28:55
【问题描述】:

我可以使用 Firebase 发送点对点通知吗?示例:UserA 向 UserB 发送好友请求。即使应用在后台,UserB 也会收到此通知。

可以从客户端发送推送通知吗?示例:UserA 向 UserB 发送好友请求。发生此事件时,我直接从客户端连接到 APNS。这是一个可行的解决方案吗?

自从 Firebase 最近推出了更多功能以来,阅读其他帖子有点令人困惑,所以我认为许多答案可能已经过时了。

【问题讨论】:

  • 您将为 ios 或 android 实现相同的逻辑。 Firebase 允许您使用设备组(用户拥有的设备组)。在创建组时,您可以在具有 UserID : DeviceGroupID 的表中添加一个值,因此当您发送通知时,您只需将通知从客户端询问到 DeviceGroupID
  • @Mederic 谢谢我不知道这个功能。也许我滥用了点对点,因为这并不涵盖所有场景。如果 UserA 正在向 UserB 发送好友请求,我无法提前知道 UserB 是谁,所以我不可能知道将谁添加到组中。也许当朋友请求事件发生时,我创建了组?这似乎是一个 hack,在这个 Firebase 案例中,我认为“组”是指一组属于单个用户的不同设备。
  • 您可以使用 Firebase 功能 发送点对点推送通知。我使用 Functions 做了类似的事情。您需要编写自己的函数来发送通知。
  • @AnonProgrammer 你不明白什么是设备组:用户A 拥有一台平板电脑和一部手机,它们都登录了你的应用程序,这两个设备都添加到了一个设备组中。 1 个用户 = 1 个设备组 = 多个设备。然后当用户创建组或获取 FCM 令牌时,您将 Username : FCM 令牌 添加到数据库,然后轻松发送获取 FCM 令牌的通知。然而Peter Tao提到了函数的使用,这可能更容易让你实现

标签: ios swift firebase apple-push-notifications


【解决方案1】:

好问题 - 巧合的是,几个月前我不得不这样做。

  1. 您需要从后端 (Firebase) 发送通知。不是客户端。如果在后端配置,您可以随时更改通知,而无需发布您的应用的新版本。

  2. 查看Firebase cloud functions。您可以设置云函数来“观察”实时数据库的某些节点。因此,当有人发送“好友请求”时,它会更改数据,从而触发云功能。 Cloud 函数会依次读取新数据(名字、姓氏等)并将推送通知发送给相应的用户。

  3. 将此示例用作指南。 https://github.com/firebase/functions-samples/tree/master/fcm-notifications

祝你好运!

【讨论】:

  • 当准备好向设备发送通知时,我调用sendToDevice 方法,该方法将String 作为参数。您提供的资源说它是device notification token。 Firebase 称其为“来自客户端 FCM SDK 的注册令牌”。这里应该输入什么?
  • 为了让 FCM 发送通知,它必须知道将通知发送到哪个设备。因此,客户端必须将其特定的令牌发送到服务器。查看他们的文档以检索客户端令牌:firebase.google.com/docs/cloud-messaging
猜你喜欢
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
相关资源
最近更新 更多