[英]How to get all data at each month from Firebase for calculation in Android
每个日期有多个日期和数据。 每个日期和数据都存储在一个唯一的键下。
"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
object 指向数据库根目录,那么您的引用不正确,因为您缺少Data
和用户的 ID。 查看Data
和K2ngvpioRUYF4bRM07Da5cbAjE53
是否存在于您的树中? 两个孩子都应该添加到您的查询中。 除此之外,您使用的是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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.