Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 火基。“错误”;请求包含无效的参数;_Node.js_Typescript_Firebase_Push Notification_Firebase Admin - Fatal编程技术网

Node.js 火基。“错误”;请求包含无效的参数;

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

在后端使用以下库(来自package.json)

尝试向多个用户发送多播消息

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。同样的错误
  • 试图在aps对象中设置自定义属性-
    内容可用
    内容可用
    。同样的错误
  • 从有效负载中删除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
    是可选字符串

    const createNotificationMessage = (tokens: string[], data?: { [key: string]: string }): admin.messaging.MulticastMessage => {
      return {
        data,
        tokens,
        apns: {
          payload: {
            aps: {
              contentAvailable: true,
              badge : 0
            },
          },
        },
      };
    };