【问题标题】:Iterating collections inside collections in Firestore在 Firestore 中的集合内迭代集合
【发布时间】:2018-05-25 16:54:53
【问题描述】:

如果我在 user 集合中迭代每个 user.id,我会正确打印出每个 user.id:

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

现在,当我尝试在用户集合中的每个文档中迭代一个集合时,printsuser.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

我包含了一个绕过空集合的异常。

如何正确完成迭代?

【问题讨论】:

    标签: python firebase google-cloud-firestore


    【解决方案1】:

    我只需要为第一组结果创建一个数组,然后分别迭代每个 id:

        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
    

    这需要更多时间,但它会让你到达那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 2015-08-17
      • 2021-11-14
      • 2017-03-10
      相关资源
      最近更新 更多