如何在防火墙/代理后面使用 Firebase?
Posted
技术标签:
【中文标题】如何在防火墙/代理后面使用 Firebase?【英文标题】:How to use Firebase behind Firewall / Proxy? 【发布时间】:2019-04-15 23:42:28 【问题描述】:我们正在运行一个连接到 Firebase 的简单应用程序来读取一些数据。连接失败,出现以下超时错误:
@firebase/database: FIREBASE WARNING: "code":"app/invalid-credential",
"message":"Credential implementation provided to initializeApp()
via the \"credential\" property failed to fetch a valid Google OAuth2 access token
with the following error: \"Failed to parse access token response: Error: Error
while making request: connect ETIMEDOUT
我们在防火墙/代理后面,它似乎正在阻止进出 Firebase 的流量,因此连接失败。我的问题是需要打开哪些端口以及哪些目标 URL 才能使此应用程序正常工作?
任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:最后,经过几天的努力解决了这个问题。需要联系网络团队并请求执行以下操作:
-
为 Firebase 通信打开端口 5228、5229、5230。
在源服务器和以下 URL 之间在代理级别打开通信:
fcm.googleapis.com
gcm-http.googleapis.com
accounts.google.com
项目名称.firebaseio.com
在我的 node.js 应用程序中添加了以下代码:
var globalTunnel = require('global-tunnel-ng'); globalTunnel.initialize( 主机:'', 端口:, //proxyAuth: 'userId:password', // 可选认证 sockets: 50 // 每个 http 和 https 的可选池大小 );
已安装模块global-tunnel-ng
:
npm install global-tunnel-ng
它解决了我的问题,我希望它也可以帮助其他人。 :-)
【讨论】:
以上是关于如何在防火墙/代理后面使用 Firebase?的主要内容,如果未能解决你的问题,请参考以下文章
如果您在防火墙后面的 NAT 上,如何使用 php xdebug?
如何在没有 NAT 的情况下连接路由器或防火墙后面的客户端 tcp 端口