Использование firebase-functions-test с эмулятором - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь создать автоматический тест для моего CI, связывая мои облачные функции с локальным эмулятором. Я использую firebase-functions-test вместе с firebase-admin sdk. В то время как мои тесты проходят локально, они терпят неудачу при использовании тестового контейнера Docker. Я создал тест для иллюстрации.

const databaseName = 'foo';
const test = require('firebase-functions-test')({
  databaseURL: "http://localhost:9000?ns=" + databaseName
});
describe('test', () => {
  it('tests', async () => {
    const admin = require('firebase-admin')
    admin.initializeApp();
    return await admin.database().ref('bar').push('baz')
  })
})

Приведенный выше тест выдает повторные предупреждения:

@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: \"Error fetching access token: Error while making request: getaddrinfo ENOTFOUND metadata.google.internal metadata.google.internal:80. Error code: ENOTFOUND\"."}

Я подозреваю, что это как-то связано с ~/.config/gcloud/application_default_credentials.json, но я нене понимаю, почему эмулятор будет проверять учетные данные gcloud.

Любой совет приветствуется, заранее спасибо!

1 Ответ

0 голосов
/ 11 ноября 2019

Эта проблема уже была устранена на официальном Firebase Github, см. здесь .

Возможные причины:

  1. Синхронизация часов(скорее всего, поскольку вы видите это только в одной среде)
  2. Учетная запись службы и URL базы данных предназначены для 2 разных проектов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...