我的数据:
我正在寻找一种使用自定义日期范围过滤日期的方法。 我在网上看到了一些他们查询日期的例子, 但时间戳一直是关键,这在我的情况下是不可能的。 我已经尝试了下面的代码,但没有用。
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);
});
这似乎行不通。有什么想法吗?
最佳答案
您正在尝试根据日期值进行过滤,但您是根据type
进行排序 这不是 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");
关于javascript - 按日期过滤 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54171488/