首页 > 解决方案 > 使用 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

标签: androidfirebase-cloud-messagingakkaalpakka

解决方案


推荐阅读