【发布时间】:2017-10-21 18:43:40
【问题描述】:
我有一个非常简单的 NodeJS 服务器,用于监控我们的 Firebase 数据库。我的代码与 Firebase 文档中的示例基本相同:
var firebase = require("firebase");
firebase.initializeApp({
databaseURL: 'https://myurl.firebaseio.com/',
serviceAccount: 'path/to/json.json'
})
现在我遇到的问题是,当我从我们的网络中运行此代码时,它似乎不是连接,因为在读取一些数据之后有一段代码并且它永远不会运行:
var nodeRef = this.db.ref("node");
nodeRef.on("child_added", function (snapshot, prevChildKey) {
// ...
}, function (error) {
console.log(error);
})
如果我授予每个人对数据库的写入权限,我可以在initializeApp 调用中取出 serviceAccount 设置,一切正常。我已经尝试运行 Fiddler 以查看它可能发出的请求失败的原因,但我根本没有看到 Fiddler 中弹出任何请求。有什么想法需要我们的代理允许吗?
【问题讨论】:
-
听起来客户端无法使用服务帐户进行身份验证。如果问题与安全相关,则在写入失败时应该会看到错误。日志中有什么相关的吗?一般来说,启用调试日志记录 (
firebase.database.enableLogging(true)) 并查看是否显示任何关于它为什么无法进行身份验证的提示可能很有用。 -
启用日志记录后,它会抛出“错误:证书链中的自签名证书”知道这可能使用的是什么不同的 url,所以我可以让我们的代理将这些 url 列入白名单吗?
标签: node.js firebase firebase-realtime-database