Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fetch records by comparing with date in flutter cloud firestore plugin?

Working on a flutter application where I'm using firebase cloud firestore for storing all my documents. My document has a startDateTime field having a format like this...

enter image description here

I want to fetch all records whose startDateTime is greater than or equal to current date. Here is my flutter code to do this...

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()}" ));
    })

But this is not working. Can't able to understand how to use isGreaterThanOrEqualTo so that it'll work.

Need some guidance.

like image 548
Suresh Avatar asked Jun 03 '18 05:06

Suresh


People also ask

How to get all data from a FireStore collection in flutter?

So today, in this article, we will learn about How to get all data from a Firestore collection in flutter. How to get all data from a Firestore collection in flutter? Call the getDocs () function, then use the build function, then print all the document IDs in the console. Here is how you do it!

How to add data to the Cloud Firestore?

There are two ways to add data to the Cloud Firestore, first way is to specifiy the document name and the second way Cloud Firestore will generate a random id, let us see both cases. So first in your State class you need to get an instance of Cloud Firestore:

What can you do with a flutter database?

We built a simple Flutter application that uses the Firestore database as a backend. You also learned how to perform the four most important tasks when working with a database: creating data, updating data, reading data, and deleting data. From now on, you can make more complicated and complex apps with that tech stack.

What type of database is FireStore?

Firebase Firestore is a NoSQL database, which means the data we store, are organized in the form of collections rather than tables as of in other relational databases.


1 Answers

Pass just this query

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

Since firebase automatically converts dart DateTime object to Timestamp Firebase object. You also need to do the same when you save the object.

enter image description here

You can see on the right if the object type is timestamp.

In case this doesn't work, you can save another object on your creation in numeric format. Then it is easy to compare. You can get numeric dateTime like this:

new DateTime.now().millisecondsSinceEpoch

like image 141
Tree Avatar answered Sep 17 '22 19:09

Tree