如何通过与Flutter Cloud Firestore插件中的日期进行比较来获取记录?

Sur*_*esh 7 dart firebase flutter google-cloud-firestore

在flutter应用程序上工作,我在其中使用Firebase Cloud Firestore存储我的所有文档。我的文档有一个startDateTime字段,其格式如下:

在此处输入图片说明

我想获取其startDateTime大于或等于当前日期的所有记录。这是我的颤振代码来做到这一点...

Firestore.instance.collection("trips")
    .where("trip.createdByUID", isEqualTo: this.userDetails['id'])
    .where("trip.startDateTime", isGreaterThanOrEqualTo: new DateTime.now().toString() )
    .getDocuments().then((string) {
        print('Firestore response111: , ${string.documents.length}');

        string.documents.forEach((doc) => print("Firestore response222: ${doc.data.toString()}" ));
    })
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。无法理解如何使用isGreaterThanOrEqualTo才能正常工作。

需要一些指导。

Tre*_*ree 6

仅传递此查询

.where("trip.startDateTime", isGreaterThanOrEqualTo: new DateTime.now())

由于firebase自动将dart DateTime对象转换为Timestamp Firebase对象。保存对象时,您还需要执行相同的操作。

在此处输入图片说明

您可以在右侧看到对象类型是否为时间戳。

万一这不起作用,您可以以数字格式在创建时保存另一个对象。然后很容易比较。您可以像这样获取数字dateTime:

new DateTime.now().millisecondsSinceEpoch