Я пытаюсь создать автоматический тест для моего 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.
Любой совет приветствуется, заранее спасибо!