首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google.api_core.exceptions.ServiceUnavailable: 503数据存储操作超时,或使用stream时数据暂时不可用

google.api_core.exceptions.ServiceUnavailable: 503数据存储操作超时,或使用stream时数据暂时不可用
EN

Stack Overflow用户
提问于 2019-07-02 04:45:55
回答 1查看 719关注 0票数 1

我正在尝试迭代Firestore中的所有文档。我在Python中运行以下代码

代码语言:javascript
复制
from google.cloud.firestore import Client

client = Client()

docs = list()
for es in client.collection('exchange-statements').stream():
    docs.append(es)

但它会产生以下错误

代码语言:javascript
复制
google.api_core.exceptions.ServiceUnavailable: 503 The datastore operation timed out, or the data was temporarily unavailable.

我正在使用google-cloud-firestore v1.2.0

编辑

由于我的问题是关于流式文档,而不仅仅是计数,所以它与here的解决方案不同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-02 17:46:51

answer here的启发,我想出了一个通用的解决方案。然而,我想知道是否没有更好的解决方案。

代码语言:javascript
复制
def iterate(collection_name, batch_size=5000, cursor=None):
    query = client.collection(collection_name).limit(batch_size).order_by('__name__')
    if cursor:
        query = query.start_after(cursor)

    for doc in query.stream():
        yield doc
    
    if 'doc' in locals():
        yield from iterate(collection_name, batch_size, doc)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56842251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档