android - 使用 Alpakka 发送具有高优先级的 Firebase 通知
问题描述
我正在开发一个通过 Firebase Cloud Messaging 向移动设备发送消息的playframework应用程序。从 Alpakka 文档中截取的通知已成功传递
val fcmConfig = FcmSettings()
val notification = FcmNotification("Title", "Body", Topic("mytopic"))
Source.single(notification).runWith(GoogleFcm.fireAndForget(fcmConfig))
但是,我还想将消息的优先级设置为高。我的理解是,在FCM API 级别,这意味着添加{"android": {"priority": "high"}}
到消息有效负载中。Alapakka 接口定义了一个AndroidConfig
案例类,AndroidPriority
其中包含我宁愿省略的其他 5 个字段中的一个字段,尤其是AndroidNotification
字段。
val fcmConfig = FcmSettings()
// How to create sparse config?
val androidConfig = new AndroidConfig(null, High, null, null, null, null)
val notification = FcmNotification("Title", "Body", Topic("mytopic")).withAndroidConfig(androidConfig)
Source.single(notification).runWith(GoogleFcm.fireAndForget(fcmConfig))
不幸的是,将字段设置为null
不会发送消息。通知isSendable
,但将流映射到成功和错误打印输出在 JSON 格式化期间失败java.lang.IllegalArgumentException: requirement failed
。
- 如何创建一个只有优先级字段的稀疏
AndroidConfig
实例,或者 - 有没有不同的方法来设置 Alpakka 的优先级?
解决方案
推荐阅读
- javascript - VueJS 上 Vuex 中的 signalR 连接错误
- c# - 部署到具有子域的网站时,AuthorizeAttribute 重定向到不正确的 url
- python - 在 tfidf 上训练大型数据集时出现内存错误
- sql - 在oracle中使用正则表达式提取段落中的单词
- java - 管理 Azure Blob 的故障转移方案
- node.js - 为什么 NodeJS 服务器返回空模板?
- reactjs - 获得帮助以使离线功能正常工作
- javascript - 按其中的特定字段对数组 (JavaScript) 进行排序
- javascript - 字体真棒图标随机丢失
- node.js - NodeJS - 处理 TLS 重新协商客户端