繁体   English   中英

如何从 Firebase 获取每个月的所有数据,以便在 Android 中进行计算

[英]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。 查看DataK2ngvpioRUYF4bRM07Da5cbAjE53是否存在于您的树中? 两个孩子都应该添加到您的查询中。 除此之外,您使用的是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM