如何在Firestore中查询带有时间戳字段的文档?

时间:2020-04-17 14:53:38

标签: android firebase google-cloud-firestore

我想提取START_DATE最近10天内的所有文档。 例如,如果今天是 17-04-2020 (DD-MM-YYYY),那么我要获取具有START_DATE 2020-04-7 或更高版本的文档 我的收藏集结构如下:

enter image description here

我需要使用Java在Android应用程序中执行此操作。

2 个答案:

答案 0 :(得分:1)

如果要查询集合中的时间戳记字段,可以将Java Date或Firestore Timestamp对象与范围过滤器一起使用。

db
    .collection("POLL")
    .whereGreaterThan("START_DATE", date1)
    .whereLessThan("START_DATE", date2)

您将必须提供date1date2的值,以满足您的需求。

答案 1 :(得分:0)

我认为您尚未阅读文档,请在获得解决方案后检查此内容: https://firebase.google.com/docs/firestore/query-data/queries

根据您的要求使用where条件查询。

例如:

    db.collection("cities")
            .whereEqualTo("capital", true)
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            Log.d(TAG, document.getId() + " => " + document.getData());
                        }
                    } else {
                        Log.d(TAG, "Error getting documents: ", task.getException());
                    }
                }
            })

;

编辑

https://maye.pwafire.org/articles/using-timestamp-to-filter-and-order-firebase-cloud-firestore-documents/