Reputation: 2525
I am able to fetch the data using where condition if it's a text field but when I am trying to do the same with timestamp field and date things are not working.
Here is my code:
home.ts
firebase.firestore().collection("cities").where("timestamp", ">", "3/24/2020")
.onSnapshot(function(querySnapshot) {
var cities = [];
querySnapshot.forEach(function(doc) {
cities.push(doc.data().name);
});
console.log("Timestamp greather than 3/24/2020 -- ", cities.join(", "));
});
Everything works fine with firebase.firestore().collection("cities").where("state", "==", "CA")
but not working with date
.
Screenshot of fire storage:
Note: JLD
doc should be returned in console because its timestamp
value is greater than 3/24/2020
As guided by @alex now I am doing like this
let start = new Date('2020-03-25');
firebase.firestore().collection("cities").where("timestamp", ">", start)
but it is including the data of 2020-03-25
when I am using >
, why ?
Upvotes: 6
Views: 11739
Reputation: 1
I am trying to do the same with the timestamp field and date things are not working.
It's not working because you are passing to the .where("timestamp", ">", "3/24/2020")
a String which is not correct since your timestamp
property in the database holds a Date
object and not a String. To solve this, instead of passing the date as a String ("3/24/2020") pass it as a Date object and everything will work fine.
let timestamp = new Date('2020-03-25');
And then use:
firebase.firestore().collection("cities").where("timestamp", ">", timestamp);
Upvotes: 13