如何在 Firebase Admin.messaging() SDK 中设置 "collapse_key"?
How do I set "collapse_key" in Firebase Admin.messaging() SDK?
admin.messaging().sendToDevice(tokens, payload)
这是有效载荷:
const payload = {
collapse_key: "something",
notification: {
body: message.body || "[ Sent you a photo ]",
},
data:{
"thread_id": String(thread_id),
"message_id": String(message_id),
"user_id": String(message.user_id),
"created_at": String(message.created_at),
}
};
错误:消息有效负载包含无效的 "collapse_key" 属性。有效属性为 "data" 和 "notification".
为此我需要使用 REST API 吗?如果是这样,那真的很糟糕,因为我必须为传出请求支付额外费用...
collapseKey
是 MessagingOptions .You pass the options as the third parameter of sendToDevice() 的 属性。
const options = {
priority: 'high',
collapseKey: 'myCollapseKey'
};
admin.messaging().sendToDevice(tokens, payload, options)
.then(function(response) {
console.log("Successfully sent message:", response);
})
.catch(function(error) {
console.log("Error sending message:", error);
});
一个完整的例子在the documentation.
对于那些使用最新的 firebase-admin
SDK 和新的 send()
方法寻找更新解决方案的人,我是这样构建通知的:
{
"token": TARGET_DEVICE_FCM_TOKEN,
"notification": {
"title": "Notification title",
"body": "Optional body",
},
"android": {
"collapseKey": "YOUR_KEY",
}
...rest of payload
}
admin.messaging().sendToDevice(tokens, payload)
这是有效载荷:
const payload = {
collapse_key: "something",
notification: {
body: message.body || "[ Sent you a photo ]",
},
data:{
"thread_id": String(thread_id),
"message_id": String(message_id),
"user_id": String(message.user_id),
"created_at": String(message.created_at),
}
};
错误:消息有效负载包含无效的 "collapse_key" 属性。有效属性为 "data" 和 "notification".
为此我需要使用 REST API 吗?如果是这样,那真的很糟糕,因为我必须为传出请求支付额外费用...
collapseKey
是 MessagingOptions .You pass the options as the third parameter of sendToDevice() 的 属性。
const options = {
priority: 'high',
collapseKey: 'myCollapseKey'
};
admin.messaging().sendToDevice(tokens, payload, options)
.then(function(response) {
console.log("Successfully sent message:", response);
})
.catch(function(error) {
console.log("Error sending message:", error);
});
一个完整的例子在the documentation.
对于那些使用最新的 firebase-admin
SDK 和新的 send()
方法寻找更新解决方案的人,我是这样构建通知的:
{
"token": TARGET_DEVICE_FCM_TOKEN,
"notification": {
"title": "Notification title",
"body": "Optional body",
},
"android": {
"collapseKey": "YOUR_KEY",
}
...rest of payload
}