[英]Firebase RealTimeDatabase Query gives snapshot with no values
我有一个查询问题,我想在一周的第一天和最后一天之间获取数据,为此我已将日期转换为毫秒。 但是快照中没有值。 有人知道我做错了什么吗?
我已经检查过了,两个日期(第一个和最后一个)之间至少有一个毫秒的量。 毫秒已保存为双精度。
我在下面发布了我的部分代码和数据库。
referenceIncome = database.getReference("/users");
double firstDateWeek = firstDate.get(Integer.parseInt(current));
double endDateWeek = endDate.get(Integer.parseInt(current));
Query query = referenceIncome.child(userID).child("Money").orderByChild("millisecond").startAt(firstDateWeek).endAt(endDateWeek);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
{
"users" : {
"8ps1o0nA95bRr1aMKDwnXQEoZxA3" : {
"Money" : {
"17-01-2021" : {
"-MRG-KinX5n6_MflOqm8" : {
"date" : "17-01-2021",
"id" : "-MRG-KinX5n6_MflOqm8",
"millisecond" : 1610898037725,
"money" : 800,
"spendOrEarn" : "Expenses",
"type" : "groceries"
},
"-MRGX-Qhm2383hNRTKc6" : {
"date" : "17-01-2021",
"id" : "-MRGX-Qhm2383hNRTKc6",
"millisecond" : 1610906863156,
"money" : 77,
"spendOrEarn" : "Expenses",
"type" : "groceries"
},
"-MRGX1cG87WLK-KcaKl-" : {
"date" : "17-01-2021",
"id" : "-MRGX1cG87WLK-KcaKl-",
"millisecond" : 1610906872152,
"money" : 3456,
"spendOrEarn" : "Expenses",
"type" : "groceries"
}
}
}
}
}
您正在/users/$uid/Money
上运行查询。 这意味着 Firebase 直接在该位置下获取子节点,并且:
millisecond
属性进行排序。startAt
和endAt
指示的切片。 问题是/users/$uid/Money
下的直接子节点是/users/$uid/Money/17-01-2021
并且该节点没有millisecond
属性。
Firebase 查询适用于直接子节点的平面列表,因此,如果您想按用户查询 Money 节点:将它们作为平面列表直接存储在/users/$uid/Money
下,而不是按日期分组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.