我正在尝试为我的 Firebase Cloud Messaging 通知在 Android 上提供一个标签属性,如此处和此处所述,以便我可以在必要时替换已收到的通知。
我正在使用 React Native、React Native Firebase和 ConnectyCube API。ConnectyCube 与 Firebase 一起处理用户管理和推送通知——我已经完成了所有这些工作。
我不知道如何格式化我的有效负载对象以包含可选属性,例如tag
文档相当神秘。我成功发送了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)
}
当推送通知具有相同的标签时,每个通知都将被替换为我试图模仿的较新的通知setTimeout
。
我收到了两条消息,但第一条没有被第二条取代!
任何帮助深表感谢!:)