admin.messaging不是一个函数

时间:2017-02-20 03:21:14

标签: node.js firebase firebase-cloud-messaging

问题解决了! 因为旧版本。

我已经尽力了,但无法在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 但仍然有同样的错误。

1 个答案:

答案 0 :(得分:3)

您很可能安装了旧版本。我能够正常运行当前版本via RunKit(当然减去正确的凭据)。通过从项目的根目录(运行npm ls firebase-admin的位置)运行npm install firebase-admin来仔细检查已安装的版本。