ОС: Ma c ОС Catalina v 10.15.1
Python версия: Python 3.7.1
Версия пакета pips для Firestore: google-cloud-firestore 1.6. 1
Я тестирую простые операции чтения и записи в базу данных на очень простой базе данных Firestore. Я смотрю на одну коллекцию с одним документом, содержащим 1 элемент данных (строку); однако, когда я пытаюсь записать (как показано ниже), таймер, который у меня есть (также в приведенном ниже коде), показывает, что первая запись занимает в течение 30 секунд . Такое же поведение присутствует для операций чтения.
Однако это присутствует только для первой записи / чтения в этом сценарии python. Все последующие операции записи / чтения рассчитаны примерно на 100 мс (но все же медленно для такой крошечной базы). Мне не удалось найти эту проблему, реплицированную на inte rnet, и в документации Firestore Python SDK нет упоминаний о подобном поведении. Я запускаю приведенный ниже код локально на моей машине.
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
import datetime
cred = credentials.Certificate("./path/to/adminsdk.json")
firebase_admin.initialize_app(cred)
db = firestore.client()
start = datetime.datetime.now()
#the below write takes >30 seconds to execute
doc_ref = db.collection(u'test_collection').document(u'test_document')
doc_ref.set({u'test_field':'data'})
time_after_first = datetime.datetime.now()
print(time_after_first - start)
#The below read takes 80 ms to execute
doc_data = doc_ref.get()
print(doc_data.get('test_field'))
print(datetime.datetime.now()-time_after_first)
print("done")
Я нашел предложение в другом посте StackOverflow, предлагающее использовать on_snapshot
вместо get
; однако проблема сохраняется (DocumentSnapshot получается только примерно через 30 секунд). Кроме того, проблема не уникальна для get
, но для set
, update
и др. c. а также.
Любые советы будут оценены!