如何解决火力基地错误“请求包含无效参数”
在后端使用以下库(来自 package.json)。
"firebase": "^8.3.3","firebase-admin": "^9.6.0",
尝试向多个用户发送多播消息。
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,"message":"Request contains an invalid argument."}}]
我尝试做的:
- 通过
send
方法一一发送消息。结果:每条消息都出现相同的错误 - 尝试将标头
apns-priority
设置为 5。同样的错误 - 尝试在 aps 对象中设置自定义属性 -
content-available
、content_available
。同样的错误 - 从负载中删除
apns
属性。运行良好且没有错误,但我需要 iOS 应用程序中的静默通知,这就是为什么需要选项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
是可选字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。