У меня проблемы с запуском эмулятора функций firebase в производственной базе данных. У меня есть проект, который еще не опубликован, поэтому я могу перейти к производству с любыми негативными эффектами.
В моем проекте используется только база данных реального времени, он не использует Firestore (поэтому другие вопросы по SO не актуальны). В документации указано, что триггеры Cloud Firestore и Realtime Database уже имеют достаточные учетные данные и не требуют дополнительной настройки. так что в соответствии с этим мне не нужна дополнительная настройка, чтобы указать на производственную базу данных.
Согласно всей документации по Firebase, проект должен работать с реальной базой данных firebase, если я запускаю только эмулятор функций и не запускаю эмулятор базы данных. Это предупреждение, кажется, тоже говорит об этом:
functions: следующие эмуляторы не работают, вызовы этих сервисов из эмулятора функций повлияют на производство: auth, firestore, database, hosting, pubsub
Однако этого не происходит. Вместо этого я получаю следующую ошибку:
functions [onGlobalClientRequest]: функция игнорируется, поскольку эмулятор базы данных не существует или не запущен.
Я прочитал документацию по firebase, и на самом деле ничего не упоминается, кроме установки учетных данных, которые не нужны (но я все равно устанавливаю учетные данные, используя export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"
перед запуском эмулятора функций.)
onGlobalClientRequest выглядит так:
export const onGlobalClientRequest = functions.database
.ref( client_requests_key + "/{pushedid}")
.onCreate(
async (
snap: functions.database.DataSnapshot,
context: functions.EventContext,
) => {
///.... code here...
},
);