FCM Cloud Messaging 与 Notifications 和 Message 的区别
Posted
技术标签:
【中文标题】FCM Cloud Messaging 与 Notifications 和 Message 的区别【英文标题】:FCM Cloud Messaging difference from Notifications and Message 【发布时间】:2021-04-26 09:57:07 【问题描述】:我实现了我的后端服务(使用 java 和 FCM)向移动应用发送推送通知。
我使用 Java Firebase Admin-SDK(https://firebase.google.com/docs/reference/admin/java/reference/com/google/firebase/messaging/package-summary 和 https://firebase.google.com/docs/cloud-messaging/send-message#java)实现了我的服务,我能够在 ios 和 android 移动应用上发送(和接收)推送通知。
现在我收到了来自移动开发者的请求,他们需要自定义(客户端)接收到的推送通知(以及当应用程序处于后台模式时)。
这里可能报告了同样的问题:What is the difference between Firebase push-notifications and FCM messages?
阅读文档 (https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages) 我了解到有必要使用数据消息而不是通知消息。
我不清楚需要进行哪些更改才能支持这种交付类型。 我是更改 FCM 消息的 Android-config 还是删除一些不必要的数据(只需将所有信息设置到自定义数据中,没有其他信息,例如 Android 配置等)
可以举个小例子吗?
【问题讨论】:
【参考方案1】:如果您的 json 将有 notification
键,开发人员将无法在后台处理通知。只有当应用程序处于前台时,他们才会收到此通知。如果开发人员应该收到“静默推送”或者他们需要控制所有通知,您应该删除notification
键,并仅使用data
键。
【讨论】:
【参考方案2】:这可以通过将键“通知”更改为“数据”来实现,如下所示:
"notification": //replace this line by "data"
"title": "Hey Gajanan",
"body": "Thanks for visiting omnidecoder.com"
,
"to" : "YOUR-GENERATED-TOKEN"
【讨论】:
以上是关于FCM Cloud Messaging 与 Notifications 和 Message 的区别的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Firebase Cloud Functions 测试中模拟 FCM admin.messaging().sendToDevice() 的实现
如何检测真正的 iOS/APNS 推送令牌何时向 Firebase Cloud Messaging (FCM) 注册?
Flutter Firebase Cloud Messaging - 应用程序在后台时的通知
通过NodeJS向Firebase Cloud Messaging发送消息
Flutter Firebase Cloud Messaging 如何自动关闭/取消通知?
SERVICE_NOT_AVAILABLE 同时使用 Xamarin for Android 注册 Google Cloud Messaging