2016-07-14 154 views
0

我有一个非常简单的NodeJS服务器,用于监控我们的Firebase数据库。我的代码是基本相同的火力地堡文档样本:Firebase服务器NodeJS无法连接到服务帐户

var firebase = require("firebase"); 
firebase.initializeApp({ 
    databaseURL: 'https://myurl.firebaseio.com/', 
    serviceAccount: 'path/to/json.json' 
}) 

现在我遇到的问题是,当我从我们的网络中运行这段代码,它好好尝试一下似乎是连接作为有之后的代码块读取一些数据,它从来没有得到RAN:

var nodeRef = this.db.ref("node"); 
nodeRef.on("child_added", function (snapshot, prevChildKey) { 
    // ... 
}, function (error) { 
    console.log(error); 
}) 

如果我给大家写访问数据库,我可以拿出serviceAccount上initializeApp通话设置,一切都完美的作品。我尝试过运行Fiddler来查看它可能会发出的请求失败,但我没有看到在Fiddler中弹出任何请求。任何想法,这可能会调用我们的代理需要允许的?

+0

听起来客户端无法使用服务帐户进行身份验证。如果问题与安全性有关,则写入失败时应该看到错误。日志中的任何相关内容?一般来说,启用调试日志记录('firebase.database.enableLogging(true)')可能会很有用,并查看是否显示任何暗示为什么它不会进行身份验证。 –

+0

启用日志记录后,它抛出一个“错误:证书链中的自签名证书”任何想法这可能会使用不同的URL,所以我可以让我们的代理白名单的网址? –

回答

0

我们的IT团队发现问题所在,我要求他们在我们的代理服务器中打开accounts.google.com。它被设置为“允许”而不是“隧道”。

据他们介绍,HSTS头文件导致代理上的SSL解密,除非它被设置为隧道,这导致了上面在注释中提到的“自签名证书”错误。

0

对我来说,禁用卡巴斯基让它起作用。你可以试试。