gpt4 book ai didi

firebase - 使用 Firebase FCM 时为什么无法折叠推送通知?

转载 作者:行者123 更新时间:2023-12-02 12:16:03 29 4
gpt4 key购买 nike

const options = {
priority: 'high',
collapseKey: user_id
};
const deviceTokensPromise = db.ref('/users-fcm-tokens/' + user_id).once('value');
deviceTokensPromise.then(tokensSnapshot => {
if (!tokensSnapshot.hasChildren()) {
return console.log('There are no device tokens to send to.');
}
const tokens = Object.keys(tokensSnapshot.val());
console.log(tokens);
console.log(payload);
return admin.messaging().sendToDevice(tokens, payload, options).then(response => {
console.log(response);
return removeInvalidFCMTokens(tokensSnapshot, response);
});
});

我的选项中有一个折叠键字段。

运行此代码时,iPhone 会收到多个通知,所有通知都相互叠加。我希望用最新的通知替换以前的通知。

最佳答案

查看 Firebase's FCM Messages documentation 中的“交付选项”部分.

"collapsible" message behavior is supported on Android via FCM's collapse_key, on iOS via apns-collapse-id, and on JavaScript/Web via Topic.

直觉上,您可能认为 apns-collapse-id 设置可能会进入传递到您正在使用的 sendToMessage 方法的 options 参数中。然而,这种情况并非如此。相反,请尝试将其修补到 payload 对象中,如下所示:

const patchedPayload = Object.assign({}, payload, {
apns: {
headers: {
'apns-collapse-id': user_id
}
}
});

这遵循上面链接的文档中提供的有效负载格式。

构建此修补后的有效负载后,请不要忘记将 sendToDevice(tokens, Payload, options) 更新为 sendToDevice(tokens, patchedPayload, options)

希望这对您有用!

关于firebase - 使用 Firebase FCM 时为什么无法折叠推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48054592/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com