![](/img/trans.png)
[英]Is there a way in firebase android to fetch data within a range?
[英]Retrieve firebase data within a range of 1 week
我想在 1 周的范围内检索 Firebase 数据。 我可以查询和获取像今天这样的一天的数据,但是例如 1 周的范围呢? 这是当前用于检索给定日期的数据的代码
String mDate = DateFormat.getDateInstance().format(new Date());
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("expenses").child(onlineUserId);
Query query = reference.orderByChild("date").equalTo(mDate);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
myDataList.clear();
for (DataSnapshot snapshot :dataSnapshot.getChildren()){
Data data = snapshot.getValue(Data.class);
myDataList.add(data);
}
todayItemsAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
实时数据库不是为复杂的类似 SQL 的查询而设计的。
不确定您的问题是否指按周对结果进行分组。 如果您只需要一组在某个日期开始并在另一个日期结束的结果,您可以使用startAt(...)
和endAt(...)
如本答案或规范中所述。
如果你需要比这更复杂的东西,你需要
要么获取所有结果并在您的前端/应用程序代码中过滤它们
或者使用Cloud Function在服务器上进行过滤并将结果传递给前端。
(不推荐)您可以将周数(即 45_2020)记录为文档中的单独字段,并以此进行过滤。 这很混乱,您必须相信前端在现场输入正确的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.