无法使用 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",
};
- 使用flutter_local_notification plugin as outlined in
firebase_messaging's
documentation 显示数据信息
我正在按照 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",
};
- 使用flutter_local_notification plugin as outlined in
firebase_messaging's
documentation 显示数据信息