Node.js 火基。“错误”;请求包含无效的参数;
在后端使用以下库(来自package.json) 尝试向多个用户发送多播消息Node.js 火基。“错误”;请求包含无效的参数;,node.js,typescript,firebase,push-notification,firebase-admin,Node.js,Typescript,Firebase,Push Notification,Firebase Admin,在后端使用以下库(来自package.json) 尝试向多个用户发送多播消息 import * as admin from 'firebase-admin'; const createNotificationMessage = (tokens: string[], data?: { [key: string]: string }): admin.messaging.MulticastMessage => { return { data, tokens, apn
import * as admin from 'firebase-admin';
const createNotificationMessage = (tokens: string[], data?: { [key: string]: string }): admin.messaging.MulticastMessage => {
return {
data,
tokens,
apns: {
payload: {
aps: {
contentAvailable: true,
},
},
},
};
};
const sendMulticast = (payload: admin.messaging.MulticastMessage) =>
admin.messaging().sendMulticast(payload);
const sendNotifications = async () => {
try {
const data = getData(); // here we get main data
const userTokens = getTokens(); // here we get tokens
await sendMulticast(createNotificationMessage(userTokens, data));
} catch (error) {
console.log(error);
}
}
在发送之前,我在消息中放置了4个令牌。但是我得到了这个错误信息作为回应
[{"success":false,"error":{"code":"messaging/invalid-argument","message":"Request contains an invalid argument."}},{"success":false,"error":{"code":"messaging/invalid-argument","message":"Request contains an invalid argument."}},{"success":false,"error":{"code":"messaging/invalid-argument","message":"Request contains an invalid argument."}},{"success":false,"error":{"code":"messaging/invalid-argument","message":"Request contains an invalid argument."}}]
我想做的是:
Send
逐个发送消息。结果:每条消息上都有相同的错误apns优先级设置为5。同样的错误
内容可用
,内容可用
。同样的错误contentAvailable
注意:该代码在2021年4月9日之前运行良好。在全天搜索错误原因后,我找到了问题的解决方案
const createNotificationMessage = (tokens: string[], data?: { [key: string]: string }): admin.messaging.MulticastMessage => {
return {
data,
tokens,
apns: {
payload: {
aps: {
contentAvailable: true,
badge : 0
},
},
},
};
};
不知道为什么firebase
显示错误,因为根据官方网站,参数badge
是可选字符串
const createNotificationMessage = (tokens: string[], data?: { [key: string]: string }): admin.messaging.MulticastMessage => {
return {
data,
tokens,
apns: {
payload: {
aps: {
contentAvailable: true,
badge : 0
},
},
},
};
};