2
我使用Firebase云端函数编写了一个云端函数,该函数将通知发送到某些Firebase消息传递主题。该函数的最后部分定义要发送的有效载荷,然后发送:Firebase消息传送的云端函数中的有效负载错误
// javascript code in cloud functions
const payload = {
'notification': {
'title': `${toTitleCase(name)} just logged an event`,
'body': `${events[eventType]} for ${toTitleCase(petName)}`,
'data': {
'personSent': userSent
}
}
};
console.log(payload);
admin.messaging().sendToTopic(pet_Id, payload);
但是,我得到的错误日志在我火力地堡控制台:
Error: Messaging payload contains an invalid value for the "notification.data" property. Values must be strings.
当我退出的有效载荷我证实,它是所有字符串:
{ notification:
{ title: 'Turtle Dude just logged an event',
body: 'Walk for Beer',
data: { personSent: 'mfsP8U0qDdQL4rrrbXp6K0YsF423' } } }
然而,当我从我的iPhone应用程序发送相同的有效载荷(这我试图避免,因为这意味着我必须存储在客户端的消息私钥)一世我能够附加额外的数据我想送就好了:
// Swift code in iPhone app
let body: [String: Any] = ["to": "/topics/\(currentPet)",
"priority" : "high",
"notification" : [
"body" : "\(events[eventType]) for \(petsName.localizedCapitalized)",
"title" : "\(myName.localizedCapitalized) just logged an event",
"data" : ["personSent": myId]
]
]
我怎样才能做到在我的云功能添加额外的数据,如我在斯威夫特的代码呢?
我认为你需要推广你的'data'上升了一个层次:'{通知:{}数据:{}}' –
好吧,因为我只是送'data'下的一个字段我只是将'myId'的值设置为'data'而不是嵌套它。不知道为什么它不起作用。 – MarksCode
Hi @MarksCode。在迈克尔布莱提到的修改有效载荷之后它还没有工作吗?你的评论有点不清楚。 –