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。在邁克爾布萊提到的修改有效載荷之後它還沒有工作嗎?你的評論有點不清楚。 –