В упрощенной форме это выглядит примерно так:
Код: Выделить всё
from firebase_admin import firestore
def find_all_issues(collection: str) -> None:
fs_client = firestore.client()
coll_ref = fs_client.collection(collection)
doc_snapshot_stream = coll_ref.stream()
for doc_snap in doc_snapshot_stream:
d = doc_snap.to_dict()
# perform error checks on d
Код всегда работает идеально во всех моих коллекциях, кроме одной.
К сожалению, в самой большой коллекции я нередко получаю такую ошибку:
Код: Выделить всё
grpc._channel._MultiThreadedRendezvous:
В сообщении об ошибке содержится очень полезный совет:
Код: Выделить всё
Please try either limiting the entities scanned, or run with an updated index configuration.- : как я могу это сделать? Мне нужно обработать каждый документ в коллекции! Кроме того, я очень надеюсь, что Google не ожидает, что пользователи Firestore каким-то образом будут вручную разбивать большие операции чтения.
Код: Выделить всё
limiting the entities scanned - : Я понятия не имею, какой индекс использовать для решения этой проблемы. В других контекстах Firestore я видел сообщение об ошибке Google, которое очень полезно давало вам точную команду индекса, которую вы должны выполнить, чтобы решить проблему. К сожалению, здесь Google ничего мне не говорит.
Код: Выделить всё
run with an updated index