Как использовать Firebase за Firewall / Proxy? - PullRequest
0 голосов
/ 13 ноября 2018

Мы запускаем простое приложение, которое подключается к 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 голосов
/ 16 ноября 2018

Наконец, после нескольких дней борьбы с проблемой, она заработала. Необходимо связаться с сетевой командой и запросить выполнение следующих действий:

  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

Это решило мою проблему, и я надеюсь, что это может помочь и другим. : -)

...