Я пытаюсь дать моему уведомлению Firebase Cloud Messaging свойство тега на Android, как описано здесь и здесь , чтобы я мог заменить уведомления, полученные при необходимости.
Я использую React Native, React Native Firebase и API ConnectyCube. ConnectyCube работает с Firebase для управления пользователями и pu sh уведомлений - у меня все это работает.
Что я не могу понять, так это как отформатировать мой объект полезной нагрузки, чтобы включить дополнительные свойства, такие как tag
, поскольку документация довольно крипта c. Я успешно отправляю message
, который включен в свойство message
, и в документах ConnectyCube вы увидите, что необязательное свойство iOS для badge
- это просто еще одно свойство в объекте payload
, но в в случае tag
для android приведенный ниже код не работает:
export const sendNotification = async (calleeId, callLength, tagUUID) => {
const callersUserName = await getUserNameFromStorage();
const payload = JSON.stringify({
message: callersUserName + '-' + callLength,
tag: tagUUID,
});
const pushParameters = {
notification_type: 'push',
user: { ids: [calleeId] }, // recipients.
environment: 'production', // environment, can be 'production'.
message: ConnectyCube.pushnotifications.base64Encode(payload)
};
ConnectyCube.pushnotifications.events.create(pushParameters, function (error, result) {
});
setTimeout(() => {
const payload2 = JSON.stringify({
message: 'replacement-notification',
tag: tagUUID,
});
const pushParameters2 = {
notification_type: 'push',
user: { ids: [calleeId] }, // recipients.
environment: 'production', // environment, can be 'production'.
message: ConnectyCube.pushnotifications.base64Encode(payload2)
};
ConnectyCube.pushnotifications.events.create(pushParameters2, function (error, result) {
});
}, 3000)
}
Когда уведомления pu sh имеют одинаковый тег, каждое уведомление будет заменено новым, которым я являюсь пытаюсь имитировать c с setTimeout
.
Я получаю оба сообщения, но первое не заменяется вторым!
Любая помощь очень ценится! :)