Firebase云功能推送通知

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase云功能推送通知相关的知识,希望对你有一定的参考价值。

目前,我在每个应用启动&&令牌刷新时订阅每个用户一个主题,如下所示:

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
    if let user = Auth.auth().currentUser {
        let topic = "topic_for_user_with_id_" + user.uid
        Messaging.messaging().subscribe(toTopic: topic)
    }
}

像这样我只需从云功能发送通知:

const topic = `topic_for_user_with_id_${userId}`
return admin.messaging().sendToTopic(topic, payload, options);

为什么我不应该使用主题并直接向设备令牌发送通知有任何缺点吗?

答案

没有没有缺点,当很多人订阅某个例子weather时,通常会使用主题。在这种情况下,最好使用主题。

使用令牌发送通知通常是针对一个人而不是很多人进行的。

来自关于主题的文档:

基于发布/订阅模型,FCM主题消息传递允许您向已选择加入特定主题的多个设备发送消息。您可以根据需要编写主题消息,FCM可以处理路由并将消息可靠地传递给正确的设备。

如果您要发送私人通知,则使用令牌发送到该特定设备,因此没有多少人看到私人通知的内容。

我认为使用主题的唯一缺点是用户需要从他自己的手机取消订阅该主题,因为它基于公共/订阅模型。

但我认为这是在Admin FCM API解决的。

更多信息:

https://firebase.google.com/docs/cloud-messaging/admin/manage-topic-subscriptions

以上使用主题和令牌,您只需拥有令牌就可以取消订阅注册到主题的用户。

以上是关于Firebase云功能推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云功能不发送异步推送通知

IOS Firebase 云功能中未收到推送通知

Firebase云功能推送通知

Firebase 函数的推送通知 - 迭代 onWrite 返回

Firebase 云消息传递不会创建推送通知,但会获取信息

Firebase 云消息传递未在 iOS 14 上提供推送通知