Javascript Firebase过滤器(按日期)
我的数据: 我正在寻找一种使用自定义日期范围过滤日期的方法。 我在网上看到一些例子,他们查询了日期, 但时间戳一直是关键,这在我的情况下是不可能的。 我尝试了下面的代码,但没有成功Javascript Firebase过滤器(按日期),javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我的数据: 我正在寻找一种使用自定义日期范围过滤日期的方法。 我在网上看到一些例子,他们查询了日期, 但时间戳一直是关键,这在我的情况下是不可能的。 我尝试了下面的代码,但没有成功 var rootRef1 = firebase.database().ref().child("Users").orderByChild('type') .startAt("2019-01-05").endat("2019-01-10"); rootRef1.on("child_added",s
var rootRef1 = firebase.database().ref().child("Users").orderByChild('type')
.startAt("2019-01-05").endat("2019-01-10");
rootRef1.on("child_added",snap => {
var name=snap.child("fullname").val();
var email= snap.child("email").val();
var address= snap.child("address").val();
var contact= snap.child("contact").val();
var status=snap.child("status").val();
var type=snap.child("type").val();
var date=snap.child("regdate").val();
console.log(name);
});
这似乎不起作用。有什么想法吗?您尝试按日期值筛选,但按
类型排序,这不是Firebase数据库查询的工作方式:您总是先对属性/值排序,然后对同一属性/值进行筛选
因此,要在regdate
上订购/筛选:
firebase.database().ref().child("Users").orderByChild('regdate')
.startAt("2019-01-05").endAt("2019-01-10");
注意,我还将endat
更改为endat
(大写A
)。您的endat
将给出一个语法错误
您现在将在2019-01-10结束。由于您的实际值包含一个时间,因此它们都将在该值之后立即下降。如果您还希望包括在2019-01-10
本身注册的用户,请使用:
firebase.database().ref().child("Users").orderByChild('regdate')
.startAt("2019-01-05").endAt("2019-01-10 23:59:59");