【发布时间】:2018-10-05 21:44:33
【问题描述】:
Firebase 返回的数据与我想要的查询不匹配。
我的域类类似于
Event {
long eventDate
//many other irrelevant stuff
}
我希望检索接下来的 10 个事件(今天之后)(SQL 如下:Select * from event e where e.eventDate > now() order by e.eventDate ASC limit 10
然后我正在执行以下请求:
fire.child("event").orderByChild("eventDate").startAt(System.currentTimeMillis() + 1, "eventDate").limitToFirst(10).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
List<Giveaway> page = new ArrayList<>(PAGE_SIZE);
for (DataSnapshot evs : dataSnapshot.getChildren()) {
Event da = evs.getValue(Event.class);
long s = System.currentTimeMillis();
long w = da.eventDate;
System.out.println(s < w); //IN APP CHECK
]
}}
但是这个查询返回的所有结果都打印false
【问题讨论】:
-
它在哪里返回
false?请添加相应的代码。 -
@AlexMamo,它不返回 false,它返回值,当我检查
System.out.println(s < w);时它总是打印 false...检查代码 -
所以这是正确的行为,因为当前时间戳不能小于过去的时间戳,对吧?
-
@AlexMamo 你读过我的问题吗?我希望现在之后发生事件......所以当前时间戳必须低于 eventDate
-
那么您确定
w是在以后设置的吗?你能从你的数据库中为我们提供一个具体的例子吗?我很害怕 if 语句没有弄错。
标签: java android firebase firebase-realtime-database