Проблема с методом базы данных firebase_admin collection (), в python - PullRequest
0 голосов
/ 19 июня 2019

Я использовал этот код, чтобы получить копию базы данных Firestore на локальную, но в последний день я неожиданно обнаружил эту ошибку:

google.api_core.exceptions.InvalidArgument: 400 Document parent name "projects/some-niceproject/databases/(default)" lacks "/" at index 43.

Это краткое изложение:

grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with:
        status = StatusCode.INVALID_ARGUMENT
        details = "Document parent name "projects/some-niceproject/databases/(default)" lacks "/" at index 43."
        debug_error_string = "{"created":"@1560895696.899080325","description":"Error received from peer ipv4:172.217.17.10:443","file":"src/core/lib/surface/call.cc","file_line":1046,"grpc_message":"Document parent name "projects/some-niceproject/databases/(default)" lacks "/" at index 43.","grpc_status":3}"

Итак, мой обычный способ - инициализировать приложение и создать клиент firestore:

default_app = firebase_admin.initialize_app(
            credential=cred
        )
firestore_db = firestore.client()

Пока проблем нет, это не первый раз, когда я делаю это, но когда я делаю list(collections), появляется проблема.

Поскольку я думаю, что проблема в том, что в конце пути к базе данных отсутствует только «/», я пытался его установить, например, вот так:

print(firestore_db._rpc_metadata_internal)
[('google-cloud-resource-prefix', 'projects/some-niceproject/databases/(default)')]
firestore_db._rpc_metadata_internal = [('google-cloud-resource-prefix', 'projects/some-niceproject/databases/(default)/')]
print(firestore_db._rpc_metadata_internal)
[('google-cloud-resource-prefix', 'projects/some-niceproject/databases/(default)')]

но безрезультатно.

Хуже всего то, что если я задаю имя некоторой коллекции, я могу без проблем получить доступ к документам.

Я пытался понизить grpcio до более старых версий (теперь в 1.21.1) и то же самое с firebase_admin, но безрезультатно.

Я могу продолжить работу, говоря точно название каждой коллекции, но я бы хотел, чтобы это не было необходимо, поскольку я работаю в пакете, чтобы упростить копирование баз данных Firebase.

Есть идеи о причине этой новой ошибки? Большое вам спасибо!

...