Ich schrieb eine Cloud-Funktion mit Cloud-Funktionen für Firebase, die Benachrichtigungen an bestimmte Themen von Firebase Messaging sendet. Die letzten Teile der Funktion der Nutzlast definieren, gesendet werden dann sendet sie:Payload-Fehler in Cloud-Funktionen für Firebase Messaging
// 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);
Aber ich bin immer das Fehlerprotokoll in meiner Konsole Firebase:
Error: Messaging payload contains an invalid value for the "notification.data" property. Values must be strings.
Wenn ich die Nutzlast abzumelden ich bestätigte es alle Strings ist:
{ notification:
{ title: 'Turtle Dude just logged an event',
body: 'Walk for Beer',
data: { personSent: 'mfsP8U0qDdQL4rrrbXp6K0YsF423' } } }
Allerdings, wenn ich die gleiche Nutzlast von meinem iPhone app senden (was ich versuche da zu vermeiden, dass bedeutet, dass ich die Messaging-privaten Schlüssel auf der Client-Seite zu speichern, haben) ich ist in der Lage, die zusätzlichen Daten, die ich senden will einfach gut befestigen:
// 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]
]
]
Wie kann ich erreichen, das Hinzufügen zusätzliche Daten in meiner Cloud-Funktion, wie ich in meinem Swift-Code?
Ich glaube, Sie brauchen Ihre 'data' auf eine Ebene zu fördern:' {Benachrichtigung: {}, Daten: {}} ' –
Nun, da ich nur das Senden ein Feld unter 'data' Ich habe' myId' einfach den Wert zu 'data' gemacht, anstatt ihn zu verschachteln. Nicht wirklich sicher, warum es nicht funktioniert hat. – MarksCode
Hallo @MarksCode. Funktioniert es immer noch nicht, nachdem die Payload verändert wurde, wie Michael Bleich erwähnt hat? Es ist ein bisschen unklar von Ihrem Kommentar. –