Java Firebase RealTimeDatabase查询提供的快照没有值
我有一个查询问题,我想获取一周的第一天和最后一天之间的数据,为此我将日期转换为毫秒。但是快照中没有值。有人知道我做错了什么吗 我已经检查过了,两个日期(第一个和最后一个)之间至少有一毫秒的时间。毫秒已保存为双精度 我已经在下面和数据库中发布了我的部分代码Java Firebase RealTimeDatabase查询提供的快照没有值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有一个查询问题,我想获取一周的第一天和最后一天之间的数据,为此我将日期转换为毫秒。但是快照中没有值。有人知道我做错了什么吗 我已经检查过了,两个日期(第一个和最后一个)之间至少有一毫秒的时间。毫秒已保存为双精度 我已经在下面和数据库中发布了我的部分代码 referenceIncome = database.getReference("/users"); 您正在/users/$uid/Money上运行查询。这意味着Firebase直接在该位置下获取子节点,并且: 根据其毫
referenceIncome = database.getReference("/users");
您正在
/users/$uid/Money
上运行查询。这意味着Firebase直接在该位置下获取子节点,并且:
毫秒属性对其进行排序
startAt
和endAt
指示的切片/users/$uid/Money
下的直接子节点是/users/$uid/Money/17-01-2021
,该节点没有毫秒
属性
Firebase查询工作在直接子节点的平面列表上,因此,如果要按用户查询货币节点:将它们直接存储在/users/$uid/Money
下的平面列表中,而不是按日期对它们进行分组
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"
}
}
}
}
}