У меня есть среда Cloud Functions , которая отправляет данные и уведомления.
В настоящий момент я тестирую сообщения FCM на iPhone SE (2016) и iPhone 7 Plus - и поведение двух устройств очень несовместимо, и я хотел бы знать, почему.
- iPhone SE (2016) работает iOS 14 beta 1
- iPhone 7 Plus работает iOS 14 beta 3
Следующая облачная функция отправляет уведомление и сообщение с данными - оба из них успешно доставляются на оба устройства:
// These options are global for all my fcm messages
const options = { priority: "high", timeToLive: 30000, content_available: true }
function sendProfile() {
...
const fcmToken = ********
const notif = {
notification: {
title: "test title",
body: "test body"
}
}
admin.messaging().sendToDevice(fcmToken, notif, options);
const dataMsg = {
data: {
id: id,
type: "match",
uid: uid,
name: name,
age: age.toString(),
bio: bio,
img1: String(img1),
img2: String(img2),
img3: String(img3),
pronoun: pronoun,
error: String(bot)
}
}
return admin.messaging().sendToDevice(fcmToken, dataMsg, options);
}
Однако для следующей функции:
Уведомление успешно доставлено на оба устройства
Но сообщение с данными получает только доставляется на iPhone SE (не на iPhone 7 Plus)
function sendPlace(fcmToken, placeSnapshot, matchName){
let docId = placeSnapshot.id;
let place = placeSnapshot.data();
console.log("sendPlacee: ", place.name, " to: ", fcmToken);
const dataMsg = {
data: {
type: "place",
name: place.name,
latitude: place.l.latitude.toString(),
longitude: place.l.longitude.toString(),
instruction: String(place.instruction),
placeId: docId,
picture: String(place.picture1),
matchName: matchName,
address: place.address
}
}
const notif = {
notification: {
title: "test place function",
body: "test the body message"
}
}
admin.messaging().sendToDevice(fcmToken, notif, options)
return admin.messaging().sendToDevice(fcmToken, dataMsg, options)
}
Только когда я удаляю часть полезной нагрузки, она успешно отправляется на iPhone 7 Plus (Я удалил ключевые значения instruction
, picture
и address
из полезных данных - и тогда это сработало).
Есть идеи, в чем проблема?
Редактировать: Нет никаких проблем с моими Android устройствами.