问题解决了! 因为旧版本。
我已经尽力了,但无法在stackoverflow / google / firebase上找到任何解决方案。
我在linux服务器上构建了node.js,并且不能在firebase中使用Cloud Messaging的功能。 我可以成功连接到firebase上的数据库。 但我无法使用云消息传递服务。
我对编码很新,所以请告诉我是否有任何基本错误。
我在node.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 但仍然有同样的错误。
答案 0 :(得分:3)
您很可能安装了旧版本。我能够正常运行当前版本via RunKit(当然减去正确的凭据)。通过从项目的根目录(运行npm ls firebase-admin
的位置)运行npm install firebase-admin
来仔细检查已安装的版本。