问题解决了! 因为旧版本。
我已经尽力了,但在stackoverflow/google/firebase上找不到任何解决方案。
我在 linux 服务器上构建节点.js并且无法使用 Firebase 中的云消息传递功能。 我可以成功连接到火力基地上的数据库。 但我无法使用云消息服务。
我对编码很陌生,所以如果我有任何基本错误,请告诉我。
我在节点上的一些代码.js:
var admin = require("firebase-admin");
var serviceAccount_2 = require("/home/____________.json");
var app_V2 = admin.initializeApp({
credential: admin.credential.cert(serviceAccount_2),
databaseURL: "https://_______.firebaseio.com"
}, "myapp");
var payload = {
notification: {
title: "This is Title",
body: "This is Msg body"
}
};
var topic = "some_topic";
admin.messaging().sendToTopic(topic, payload)
.then(function(response) {
console.log("Successfully sent message:", response);
})
.catch(function(error) {
console.log("Error sending message:", error);
});
我尝试了很多次,但仍然有同样的错误。
FIREBASE WARNING: Exception was thrown by user callback. TypeError: admin.messaging is not a function
TypeError: admin.messaging is not a function
我尝试使用相同的代码 https://firebase.google.com/docs/cloud-messaging/admin/send-messages#send_to_a_topic 但仍然有相同的错误。
很可能您安装了旧版本。我能够通过 RunKit 运行当前版本(当然减去适当的凭据)。通过从项目的根目录(运行npm install firebase-admin
的根目录)运行npm ls firebase-admin
来仔细检查已安装的版本。