我是Nodejs的新手,但是在Firebase版本3.0.2中已经有一个可以工作的js客户端程序。事实证明,我需要一个服务器来执行js客户端中无法完成的一些简单操作。

当我在nodejs中尝试此基本操作时,什么也没发生-永远不会检索数据库中的数据,并且 Node 服务器程序将继续运行且没有错误。服务器程序(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());
});

数据库中已加载数据,而这正试图查看根。当我通过控制台将项目添加到数据库时,仍然没有任何 react 。更具体的ref()值无效。

我正在使用 Node 版本v4.4.4。在命令行(在MBP/OSX上)使用“node server.js”调用该程序。

我花了几个小时试图弄清楚我在做什么错-可能是愚蠢的事情!预先感谢您的帮助。

最佳答案

固定的!

  • 添加了调试,这是必不可少的:
    firebase.database.enableLogging(true)
  • 看到 token 无效,并且一直在断开连接/重新连接以重试。日志中的行如下:

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

    (注意:如果没有日志记录,这完全是无声的!)。
  • 事实证明服务帐户未正确创建!您必须先确定服务条款!为此:请转到https://console.cloud.google.com/
  • 重新创建了一个新的服务帐户并将其连接起来-终于可以了!
  • 关于node.js - 带有新Firebase的Nodejs应用程序无法检索数据库项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37379707/

    10-11 03:41
    查看更多