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

如何用Firebase Admin Java SDK按国家/版本分群推通知并修复条件报错?

解决Firebase Admin Java SDK条件推送的无效参数异常

你遇到的问题是因为FCM的条件表达式语法有严格规范,你的写法不符合官方要求,具体修正方案如下:

错误原因拆解

  1. device.country 不是FCM支持的条件字段,正确的国家/地区匹配字段是 device.region
  2. FCM不支持数组语法['us', 'uk'],多值匹配需要用||(或)运算符逐个枚举

修正后的条件表达式

把原条件改成符合规范的写法:

String condition = "device.os == 'android' && (device.region == 'us' || device.region == 'uk')";

常用支持的条件字段

FCM仅允许使用以下设备/应用属性作为条件:

  • device.os:设备系统(可选值:'android'、'ios'、'web')
  • device.region:设备所在国家(ISO 3166-1 alpha-2格式,比如'us'、'jp')
  • device.language:设备语言(比如'en'、'zh')
  • app.version:应用版本号(支持==、!=、<、<=、>、>=比较)
  • device.vendor:设备厂商(比如'samsung'、'apple')
  • device.model:设备型号

应用版本分群推送示例

如果要推送给Android平台上版本≥1.5.0的用户,条件可以这么写:

String condition = "device.os == 'android' && app.version >= '1.5.0'";

额外注意事项

  • 条件表达式总长度不能超过4096字符
  • 逻辑运算优先级要用括号明确,避免歧义
  • 所有字符串值必须用单引号包裹,不能用双引号

内容的提问来源于stack exchange,提问作者yang ross

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:14:58