无法使用 NodeJS Admin SDK 向设备发送 FCM 通知

Unable to send FCM notification to device using NodeJS Admin SDK

我正在按照 docs 中提到的代码通过 Admin SDK 发送通知。

exports.sendNotification = functions.https.onRequest((req, res) => {
  const message = {
    data: {
      type: "warning",
      content: "A new weather warning has been created!",
    },
    topic: "weather",
  };
  
  admin
    .messaging()
    .send(message)
    .then((response) => {
      console.log("Successfully sent message:", response);
    })
    .catch((error) => {
      console.log("Error sending message:", error);
    });
    res.end();
}); 

在运行以上代码使用Firebase模拟器后,控制台打印

i  functions: Beginning execution of "us-central1-sendNotification"
i  functions: Finished "us-central1-sendNotification" in ~1s
>  Successfully sent message: projects/foo/messages/2216986345254434321

但是,我没有在设备上看到任何通知。

注意:如果我通过 Firebase Notification composer 或 Postman 将通知发送到同一主题 weather,设备会显示通知。我不知道上面的代码有什么问题。

您发送的 data message 需要您自己处理显示。

查看 Message Types 不同类型的 FCM 消息。

要查看您的通知,您可以执行以下任一操作:

  • 发送 notification message 而不是数据消息,这意味着您将使用 notification 键代替 message 有效负载对象中的 data 键如下所示:
const message = {
    notification: {
      title: "warning",
      body: "A new weather warning has been created!",
    },
    topic: "weather",
};