# #firebase #google-cloud-firestore #google-cloud-functions
Вопрос:
Установка
Я разрабатываю тестовый экземпляр Firestore, размещенный на firebase, и я хотел бы запустить firebase emulators:start
таргетинг на эту базу данных. В настоящее время он нацелен на набор эмуляторов, доступных через localhost:4000
. В кодовой базе я инициализировал firebase
экземпляр с параметрами для фактического экземпляра следующим образом:
const fireAdmin = admin.initializeApp({
credential : admin.credential.applicationDefault()
, databaseURL : DatabaseConfig['databaseURL']
, storageBucket: DatabaseConfig['storageBucket']
});
где DatabaseConfig = { databaseURL: "https://mytestingserversite.firebaseio.com", ... }
.
Проблема
Однако функции все еще записывают/считывают данные из экземпляра эмулятора. Это мой firebase.json
:
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"rewrites": [
{
"source": "**",
"function": "app"
}
]
},
"functions": {
"source": "functions"
},
"emulators": {
"functions": {
"port": 5001
},
"firestore": {
"port": 8080
},
"hosting": {
"port": 5000
},
"ui": {
"enabled": true
}
}
}
Я упускаю какую- env
то переменную здесь?
Ответ №1:
Параметр databaseURL на самом деле здесь ничего не делает, так как он предназначен для указания URL-адреса базы данных в реальном времени.
Независимо от того, какой эмулятор вы на самом деле используете, вы можете опустить эмулятор Firestore, просто запустив нужные вам эмуляторы.
Например: firebase emulators:run --only functions,hosting
Это должно подсказать CLI использовать реальный экземпляр Firestore в облаке, а не эмулятор.