【问题标题】:How to fetch records by comparing with date in flutter cloud firestore plugin?如何通过与 Flutter Cloud Firestore 插件中的日期进行比较来获取记录?
【发布时间】:2018-11-12 18:49:03
【问题描述】:

在使用 firebase cloud firestore 存储我的所有文档的 Flutter 应用程序上工作。我的文档有一个 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()}" ));
    })

但这不起作用。无法理解如何使用 isGreaterThanOrEqualTo 以便它能够工作。

需要一些指导。

【问题讨论】:

    标签: firebase dart google-cloud-firestore flutter


    【解决方案1】:

    只传递这个查询

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

    由于 firebase 自动将 dart DateTime 对象转换为 Timestamp Firebase 对象。保存对象时也需要这样做。

    如果对象类型是时间戳,您可以在右侧看到。

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

    new DateTime.now().millisecondsSinceEpoch

    【讨论】:

    • 哦,伙计,我的大脑好像不在我身边。实际上,我也尝试了new DateTime.now(),但这没有用,愚蠢的问题是......我的firebase中没有任何startDateTime时间高于今天日期的文件。无论如何,感谢您的回复。
    • 它适用于 android 但不适用于 ios。请帮忙。 @树
    • 你在 iOS 上得到了什么?
    【解决方案2】:

    我让它在 iOS 上运行。请检查下面的代码。

    DateTime _now = DateTime.now();
    
    return StreamBuilder<QuerySnapshot>(
      stream: _store
          .collection('rides')
          .orderBy('rideDate')
          .orderBy('rideType')
          .where('rideDate', isGreaterThan: _now)
          .snapshots(),
    

    【讨论】:

      【解决方案3】:

      您可以使用 DateTime() 按天或按小时进行比较:

      final response = await FirebaseFirestore.instance
         .collection('meetings')
         .where(
            'date',
            isGreaterThanOrEqualTo: DateTime(selectedDay.year, selectedDay.month, selectedDay.day)
         )
         .get();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-29
        • 2013-03-27
        • 2022-07-08
        相关资源
        最近更新 更多