如何在防火墙/代理后面使用Firebase?

时间:2018-11-13 07:32:25

标签: firebase proxy firewall web-application-firewall

我们正在运行一个简单的应用程序,该应用程序连接到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 个答案:

答案 0 :(得分:-1)

最后,经过数天的努力,它开始起作用。需要联系网络团队并要求执行以下操作:

  1. 打开端口5228、5229、5230进行Firebase通信。
  2. 在源服务器和以下URL之间的代理级别打开通信:

      

    fcm.googleapis.com

         

    gcm-http.googleapis.com

         

    accounts.google.com

         

    {项目名称} .firebaseio.com

  3. 在我的node.js应用程序中添加了以下代码:

    var globalTunnel = require('global-tunnel-ng');
    
    globalTunnel.initialize({
      host: '<proxy-url>',
      port: <proxy-port>,
      //proxyAuth: 'userId:password', // optional authentication
      sockets: 50 // optional pool size for each http and https
    });
  4. 已安装模块global-tunnel-ng

    npm install global-tunnel-ng

它解决了我的问题,希望也能对其他人有所帮助。 :-)