Итерация коллекций внутри коллекций в Firestore - PullRequest
0 голосов
/ 25 мая 2018

если я повторяю каждую user.id в коллекции user, я получаю каждый user.id, распечатанный правильно:

user_ref = db.collection(u'users')
for user_collection in user_ref.get():
    print(user_collection.id, file = sys.stderr)

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

user_ref = db.collection(u'users')
for user_collection in user_ref.get():
    print(user_collection.id, file = sys.stderr)
    s2_ref = user_ref.document(user_collection.id).collection(u'preferences')
    for s2 in s2_ref.get():
        try:
            print(s2.id, file = sys.stderr)
        except google.cloud.exceptions.NotFound:
            pass

Я включил исключение для обхода пустых коллекций.

Как правильно завершить итерацию?

1 Ответ

0 голосов
/ 25 мая 2018

Мне просто нужно было создать массив для первого набора результатов, а затем итерировать каждый идентификатор по отдельности:

    user_id_array = []
    for user_collection in user_ref.get():
        user_id_array.append(user_collection.id)
    for user_id in user_id_array:
        try:
            suscription_ref = doc_ref.document(user_id).collection(u'suscriptions').document(user_id).get()
            print(suscription_ref.id,file = sys.stderr)
        except google.cloud.exceptions.NotFound:
            pass

Это займет больше времени, но доставит вас туда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...