我是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上)调用该程序。
我花了好几个小时试图找出我做错了什么 - 可能是愚蠢的事!提前感谢您的帮助。
答案 0 :(得分:8)
固定!
添加了调试,这是必不可少的:
firebase.database.enableLogging(true)
看到存在无效令牌,并且不断断开/重新连接以再次尝试。日志中的行如:
p:0:来自服务器:{" r":2," b":{" s":" invalid_token", " d":"访问被拒绝。"}}
(注意:没有记录,这完全是沉默的!)。
事实证明服务帐户未正确制作!你必须先确定服务条款!为此:转到https://console.cloud.google.com/
重新创建了一个新服务帐户并将其连接起来 - 最后,它确实有效!