有多个日期和每个日期的数据。每个日期和数据都存储在唯一的键下。
"Data":{
"K2ngvpioRUYF4bRM07Da5cbAjE53":{
"-M3jNjCuGdMCwt1Czpwz":{
"Date":"2020-3-30",
"Scale":"3"
},
"-M3jQWxm7z0EQYgkVenX":{
"Date":"2020-4-29",
"Scale":"4"
},
"-M5hxn-rCJICUvRcMZJu":{
"Date":"2020-4-24",
"Scale":"2"
}
}
}
我想计算每月的秤总数(重点是每月)。而不是使用“startAt”和“endAt”:
Query query = ref.orderByChild("Date").startAt("2020-3-1").endAt("2020-3-31");
Query query2 = ref.orderByChild("Date").startAt("2020-4-1").endAt("2020-4-30");
有没有更好的方法来循环所有月份和年份?如果我有不同年份和月份的日期,我认为上面的代码很难。
最佳答案
如果您的 ref
对象指向数据库根目录,则您的引用不正确,因为您缺少其中的 Data
和用户 ID。看到 Data
和 K2ngvpioRUYF4bRM07Da5cbAjE53
出现在您的树中吗?两个 child 都应该添加到您的查询中。除此之外,您为 Date
属性使用的 String 值实际上也不正确。您应该使用时间戳,正如我在以下帖子中的回答中所解释的:
话虽如此,正确的查询应该如下所示:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Query query = ref.child("Data").child(uid) //Added both children
.orderByChild("Date")
.startAt(startLongValue)
.endAt(endLongValue);
关于java - 如何从Firebase获取每个月的所有数据以在Android中进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61534517/