2017-01-18 3 views
2

В настоящее время я использую Firebase Admin SDK для подключения базы данных Firebase в приложении на стороне сервера NodeJS.Как подключиться к Firebase Firebase Admin против прокси?

Но я не могу найти способ подключить Firebase через настройки прокси-сервера или обнаружить свою переменную окружения HTTP_PROXY.

Когда я запустил сценарий узла на node index.js и получил некоторые сообщения о тайм-ауте, подобные этому (я знаю, что в моей рабочей сети я не могу напрямую подключиться к Firebase).

Error: Credential implementation provided to initializeApp() via the "credential 
" property failed to fetch a valid Google OAuth2 access token with the following 
error: "connect ETIMEDOUT 216.58.200.237:443".         
    at ....erver\node_modules\firebase-adm 
in\lib\firebase-app.js:74:23              
    at process._tickCallback (internal/process/next_tick.js:103:7)                        

Я также использую браузер для доступа к консоли firebase через прокси-сервер, он работает.

Но как решить эту проблему в сценариях на стороне сервера NodeJS?

+0

Похоже администратора Node.js SDK не должным образом инициализирован. Можете ли вы поделиться своим кодом инициализации ('admin.initializeApp()')? Возможно, ваши настройки прокси блокируют запрос SDK для создания токена доступа OAuth2 Google, который необходим для связи с службами Firebase. Этот запрос отправляется на 'https: // www.accounts.google.com/o/oauth2/token' порт 443. Я бы проверял, чтобы ваши настройки прокси-сервера не блокировали эти запросы. – jwngr

+0

Я пробовал свои коды в разных средах, он работает, если сеть может подключаться к Firebase/Google. – Hantsy

+0

Я за прокси и не могу инициализировать firebase, любую помощь? – Madeyedexter

ответ

9

Эта ошибка также возникает, если дата и время на вашем хост-компьютере, где выполняется процесс NodeJS, не установлены правильно. Не забудьте синхронизировать время сервера.

Полное сообщение об ошибке: Error: Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: "Error fetching access token: invalid_grant (Invalid JWT: Token must be a short-lived token and in a reasonable timeframe)". The most likely cause of this error is using a certificate key file which has been revoked. Make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generatea new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk.

+1

Это нужно больше upvotes - jesus, который был раздражающим – Garbit

+0

он работает - спасибо за помощь :) –

+0

Для меня это на самом деле говорит: «Чтобы решить (1), повторно синхронизировать время на вашем сервере». – Domi