gpt4 book ai didi

firebase - FCM 数据消息 : need to send JSON array in place of String value

转载 作者:行者123 更新时间:2023-12-01 12:09:04 25 4
gpt4 key购买 nike

根据 firebac 文档,我们可以按以下格式发送 FCM 数据消息:

{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMEFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}

但是,我需要将数据作为 JSON 数组发送,如下所示:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoIZvvDMExUdFQ3P1...",
"data":{
"geofence":[{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}]
}
}
}

如果我尝试在请求正文中发送 JSON 数组以发送消息,则会出现以下错误:

无法向 Firebase 发送消息:
  {  "error": 
{ "code": 400,
"message": "Invalid value at 'message.data[0].value' (Map), Cannot have repeated items ('geofence') within a map.\nInvalid JSON payload received. Unknown name \"\" at 'message.data[0].value': Proto fields must have a name.",
"status": "INVALID_ARGUMENT",
"details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "message.data[0].value", "description": "Invalid value at 'message.data[0].value' (Map), Cannot have repeated items ('geofence') within a map." }, { "field": "message.data[0].value", "description": "Invalid JSON payload received. Unknown name \"\" at 'message.data[0].value': Proto fields must have a name." } ] } ]
}}

Android 代码需要 JSON 数组格式而不是字符串格式的数据。我被困在这里很糟糕。

任何帮助将不胜感激。

最佳答案

数据负载中的值必须是字符串。你不能有数组或对象。您的地理围栏是一个数组。

您可以从 RemoteMessage.getData() 的 Android API 中看到返回类型是 Map<String, String> ,这意味着您只能拥有字符串值。您也可以在 protocol docs 中看到数据负载是映射到字符串值的字符串键。因此,您将不得不想办法将数据展平为字符串。

关于firebase - FCM 数据消息 : need to send JSON array in place of String value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53845712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com