Firebase Cloud Messaging:Firebase Admin SDK 中的设备组发送支持

Posted

技术标签:

【中文标题】Firebase Cloud Messaging:Firebase Admin SDK 中的设备组发送支持【英文标题】:Firebase Cloud Messaging: Device Group sending support in Firebase Admin SDK 【发布时间】:2020-02-13 13:24:55 【问题描述】:

我正在努力寻找有关 Firebase 云消息传递是否支持在 v1 HTTP API 中向设备组发送通知的答案。

根据migration documents,支持发送到设备组。

注意:任何使用设备群组消息传递的应用都必须继续使用旧版 API 来管理设备群组(创建、更新等)。 HTTP v1 可以向设备组发送消息,但不支持管理。

重要的部分是“HTTP v1 可以向设备组发送消息”

我正在使用firebase-admin-python SDK,当发送一条或一组批量消息时,我得到了成功的响应,但没有发送推送通知。

SDK 是否以与firebase_admin.messaging.sendfirebase_admin.messaging.send_all 相同的方式实际支持发送到设备组?上面的陈述让我相信它们是,但推送没有交付(它们在使用旧的遗留 FCM API 时确实交付)

【问题讨论】:

您是如何尝试从 SDK 发送到设备组的? API 仅接受单个设备令牌、主题名称和条件字符串。 我尝试使用 firebase_admin.messaging.send 函数,在 Message 对象中将通知键作为 to 参数。如果 API 只接受设备令牌、主题名称和条件字符串,我很困惑为什么文档声明支持设备组发送? 【参考方案1】:

我假设您的意思是 token 参数。 Message 上没有名为 to 的参数。

您引用的文档适用于 HTTP v1 API。它可能很好地支持发送到设备组——尽管我还没有找到任何例子来证实这一点。但我确信 SDK(都期望 Node.js SDK)既不公开也不支持任何发送到设备组的功能。 https://firebase.google.com/docs/cloud-messaging/send-message 的文档概述了您可以使用 Python SDK 发送消息的所有不同方式,并且没有提及发送到设备组。 Message.token 参数必须指定一个单独的设备注册令牌。

然而,当将设备组密钥作为令牌传递时,FCM 后端没有返回错误,这很奇怪。我建议为此报告一个错误。

【讨论】:

是的,抱歉,我的意思是 token 而不是 to(在遗留负载和 v1 负载之间混淆了)。

以上是关于Firebase Cloud Messaging:Firebase Admin SDK 中的设备组发送支持的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Firebase Cloud Messaging onMessage 被触发两次

Google Cloud Messaging与Firebase

Firebase Cloud Messaging:Firebase Admin SDK 中的设备组发送支持

如何使用 Firebase Cloud Messaging 在前台显示多个通知

Firebase Cloud Messaging 无法在带有 Flutter 应用程序的 Android 上运行

如何使用 Firebase Cloud Messaging 向所有设备发送通知