如何用typecript发送firebase云消息?

我想知道如何通过我的firebase函数后台发送firebase云消息。看起来好像有一个有效载荷的问题,我想知道如何解决这个问题。我想知道如何解决这个问题。是否需要为有效载荷提供一个接口?先谢谢你

Error sending message: { Error: Invalid JSON payload received. Unknown name "message" at 'message': Cannot find field.  
at FirebaseMessagingError.FirebaseError [as constructor] (/home/ubuntu/environment/****/functions/node_modules/firebase-admin/lib/utils/error.js:42:28)

通知功能(更新工作代码

async function notification(
  notificationType: string,
  registrationToken: string,
  objectText: string
) {
  const matchesRef = db.collection("notifications");
  const notificationObject = await matchesRef.doc(notificationType).get();

  if (notificationObject.exists) {
    const tokenMessage: admin.messaging.Message = {
      token: registrationToken,
      notification: {
        title: notificationObject.data()!.title,
        body: notificationObject.data()!.body
      },
      data: {
        click_action: "FLUTTER_NOTIFICATION_CLICK",
        title: notificationObject.data()!.title,
        body: notificationObject.data()!.body
      },
      android: {
        priority: "high"
      },
      apns: {
        headers: {
          "apns-priority": "5"
        }
      }
    };
    admin
      .messaging()
      .send(tokenMessage)
      .then((response: string) => {
        // Response is a message ID string.
        logMe(`Successfully sent message: ${response}`);
        return response;
      })
      .catch((error: string) => {
        console.log("Error sending message:", error);
      });
  }
  return false;
}

解决方案:

如果你正在尝试使用 TokenMessage 结构,你可以从链接的API文档中看到,它不包含一个 message 属性。 移除外层和多余的 token 场的最高水平。

    const message = {
        token: registrationToken,
        notification: {
          title: notificationObject.data()!.title,
          body: notificationObject.data()!.body
        },
        data: {
          click_action: "FLUTTER_NOTIFICATION_CLICK",
          title: notificationObject.data()!.title,
          body: notificationObject.data()!.body
        },
        android: {
          priority: "high"
        },
        apns: {
          headers: {
            "apns-priority": "5"
          }
        }
    };

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在get语句中传递一个javascript变量?

2022-9-8 14:40:41

未分类

如何将名称文件作为一个变量引用,以便以后在程序中打开。

2022-9-8 14:40:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索