# #python #firebase #google-cloud-firestore #emulation
Вопрос:
Я пытаюсь подключиться с помощью python 3.8 к эмулятору firestore 8.12. Мне трудно найти способ установить контакт. Я скачал свой ключ из Firestore в облаке. Но я пытаюсь подключиться локально. Как выглядит локальный файл.json для локального подключения к эмулятору?
import os
import firebase_admin
from firebase_admin import firestore
from firebase_admin import credentials
cred = credentials.ApplicationDefault()
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "local.json"
firebase_app = firebase_admin.initialize_app(cred)
db=firestore.client()
data = {
u'name': u'Los Angeles',
u'state': u'CA',
u'country': u'USA'
}
# Add a new doc in collection 'cities' with ID 'LA'
db.collection(u'cities').document(u'LA').set(data)
Комментарии:
1. Извини, что это не сработало.
Ответ №1:
Судя по этой проблеме в репозитории, похоже, что пакет SDK администратора Python также нуждается в FIRESTORE_EMULATOR_HOST
настройке переменной среды.
os.environ["FIRESTORE_EMULATOR_HOST"] = "127.0.0.1:8080"
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "emulator_config.json"
docs = db.collection(u'insights/venues/queue').stream()
Комментарии:
1. Как получить
emulator_config.json
файл?
Ответ №2:
Вы можете использовать анонимные учетные данные. Из google-auth docs:
Они полезны в случае служб, поддерживающих анонимный доступ, или эмуляторов локальных служб, которые не используют учетные данные.
Если вы не предоставите учетные данные, то он будет использовать учетные данные по умолчанию, как вы это делаете, и опишет здесь
from google.auth import credentials
from google.cloud import firestore
client = firestore.Client(credentials=credentials.AnonymousCredentials())
Необходимо установить FIRESTORE_EMULATOR_HOST