具有新Firebase的Nodejs应用程序不会检索数据库项目

时间:2016-05-22 21:10:49

标签: node.js firebase firebase-realtime-database

我是nodejs的新手,但在Firebase 3.0.2版中已经有了一个有效的js客户端程序。事实证明我需要一台服务器来做一些js客户端无法做到的简单事情。

当我在nodejs中尝试这个基本的东西时,没有任何反应 - 数据库中的数据永远不会被检索,并且节点服务器程序继续运行而没有错误。服务器程序(server.js)如下:

var firebase = require("firebase");

var myApp =firebase.initializeApp({
    serviceAccount: "xxx/xxx.json",
    databaseURL:  "https://xxx.firebaseio.com"
});


firebase.database().ref().on('value', function(snapshot) {
    console.log("urls value changed");   // NEVER GETS HERE
    console.log(snapshot.val());
});

数据库加载了数据,这是试图查看根目录。当我通过控制台向数据库添加项目时,仍然没有任何反应。更具体的ref()值无效。

我使用的是节点版本v4.4.4。使用" node server.js"在命令行(在MBP / OSX上)调用该程序。

我花了好几个小时试图找出我做错了什么 - 可能是愚蠢的事!提前感谢您的帮助。

1 个答案:

答案 0 :(得分:8)

固定!

  1. 添加了调试,这是必不可少的:

    firebase.database.enableLogging(true)

  2. 看到存在无效令牌,并且不断断开/重新连接以再次尝试。日志中的行如:

    p:0:来自服务器:{" r":2," b":{" s":" invalid_token", " d":"访问被拒绝。"}}

    (注意:没有记录,这完全是沉默的!)。

  3. 事实证明服务帐户未正确制作!你必须先确定服务条款!为此:转到https://console.cloud.google.com/

  4. 重新创建了一个新服务帐户并将其连接起来 - 最后,它确实有效!