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

Dav*_*idG 7 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());
});
Run Code Online (Sandbox Code Playgroud)

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

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

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

Dav*_*idG 8

固定!

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

    firebase.database.enableLogging(true)

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

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

    (注意:没有记录,这完全是无声的!).

  3. 事实证明服务帐户没有正确制作!你必须先确定服务条款!要这样做:转到https://console.cloud.google.com/

  4. 重新创建了一个新的服务帐户并将其连接起来 - 最后,它的工作原理!