根据时间戳在Firestore中获取文档

时间:2019-08-06 13:28:25

标签: firebase google-cloud-firestore firebase-admin

我想根据当前的服务器时间戳从Firestore提取1周前的文档,我该如何实现? 请告诉我如何使用Python SDK

1 个答案:

答案 0 :(得分:2)

Firestore不包括自动订购。因此,您需要为每个文档存储一个时间戳。

Firestore文档指出:

  

时间戳记表示与任何时区或日历无关的时间点,以UTC纪元时间中的纳秒分辨率表示为秒和秒的分数。

使用Firebase Python SDK,您可以根据时间戳进行查询,如下所示:

from datetime import datetime, timedelta
from firebase_admin import firestore


one_week_ago = datetime.now(timezone.utc) + timedelta(days=-7)

fs_client = firestore.client()
docs = fs_client.collection(collection_name).where('timestamp_field', "<=", one_week_ago).stream()

for doc in docs:
    print(u'{} => {}'.format(doc.id, doc.to_dict()))