You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Firebase自定义通知(Kotlin)中创建多自定义目标键定位用户?

在Android Kotlin中为Firebase自定义通知添加多自定义目标键

1. 发送端添加自定义目标键

不管用Firebase Admin SDK还是控制台,都要在通知的数据负载里添加自定义键值对,和你提供的示例结构一致:

后端Kotlin(Admin SDK)实现

val message = Message.builder()
    .setToken(deviceToken)
    .setNotification(Notification.builder()
        .setTitle("自定义通知")
        .setBody("带多目标键的定位通知")
        .build())
    // 按需添加多个自定义目标键
    .putData("target_user_group", "vip")
    .putData("target_location", "beijing")
    .putData("target_role", "editor")
    .build()

FirebaseMessaging.getInstance().send(message)

Firebase控制台操作

在控制台创建通知时,找到「自定义数据」板块,逐个输入键和对应的值即可,和示例图的输入框匹配。

2. Android客户端接收解析

在自定义的FirebaseMessagingService里提取这些键,用于用户定位逻辑:

class CustomMessagingService : FirebaseMessagingService() {
    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        super.onMessageReceived(remoteMessage)
        
        // 获取所有自定义数据
        val customData = remoteMessage.data
        // 取出目标键值
        val userGroup = customData["target_user_group"]
        val location = customData["target_location"]
        val role = customData["target_role"]
        
        // 执行用户定位逻辑
        processUserTargeting(userGroup, location, role)
    }

    private fun processUserTargeting(group: String?, location: String?, role: String?) {
        // 根据不同的目标值做对应处理,比如跳转专属页面、加载定制内容
        group?.let {
            when(it) {
                "vip" -> // 处理VIP用户逻辑
                "regular" -> // 处理普通用户逻辑
            }
        }
        // 同理处理location、role的定位逻辑
    }
}

3. 关键注意点

  • 自定义键名避免和Firebase默认字段(如title、body)重复
  • 数据负载的键值均为字符串类型,需自行处理非字符串数据的序列化/反序列化
  • 确保FirebaseMessagingService在Manifest中正确注册:
<service
    android:name=".CustomMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

内容的提问来源于stack exchange,提问作者Ankit Tiwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:50:25