GOOGLE_APPLICATION_CREDENTIALS для фиктивного проекта Firebase

Я учусь правильно настраивать эмуляторы Firebase для работы над своими проектами, и у меня возникла проблема. Я могу настроить эмуляторы и заставить их работать локально, однако при попытке доступа к firestore кажется, что он пытается получить доступ к реальному экземпляру Firestore вместо эмулятора.

Прямо сейчас я инициализирую приложение следующим образом (в облачных функциях)

admin.initializeApp();
const db = admin.firestore();

Но когда я запускаю функцию, я получаю:

Не удалось инициализировать и загрузить триггеры. Этого не должно происходить: Не удалось прочитать учетные данные из файла GOOGLE_APPLICATION_CREDENTIALS.json: Ошибка: ENOENT: нет такого файла или каталога, откройте «GOOGLE_APPLICATION_CREDENTIALS.json»

Дело в том, что если я использую учетные данные, созданные для моего проекта, они будут работать с реальным экземпляром Firestore, а не с эмулятором.

Как мне сделать учетные данные для моих эмулируемых служб?

Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
0
0
175
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы также используете эмулятор Firebase Functions, тогда Admin SDK подключится ко всем работающим эмуляторам, например. если запущен только эмулятор Auth, он будет использовать эмулятор и подключаться к рабочей среде для других служб, таких как Firestore. Вы можете явно установить переменную среды FIRESTORE_EMULATOR_HOST, и тогда Admin SDK будет использовать эмулятор.

Ознакомьтесь с документацией для получения дополнительной информации.

Только что попробовал это и не сработало. Он по-прежнему запрашивает у меня GOOGLE_APPLICATION_CREDENTIALS.

EzeTeja 01.11.2022 16:14

О, я думаю, мы поняли. Я установил FIRESTORE_EMULATOR_HOST, и это не сработало, но я подумал, что это может быть связано с тем, что у меня уже были установлены настройки GOOGLE_APPLICATIONS_CREDENTIALS. Поэтому я отключил его и оставил только FIRESTORE_EMULATOR_HOST. Теперь работает как положено. Важно отметить, что если я хочу, чтобы все работало с эмуляторами, GOOGLE_APPLICATION_CREDENTIALS не следует устанавливать. Это правильно?

EzeTeja 01.11.2022 16:21

Другие вопросы по теме