检索 1 周范围内的 firebase 数据
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-like 查询。
不确定您的问题是否涉及按周对结果进行分组。如果您只需要一组在某个日期开始和在另一个日期结束的结果,您可以使用 startAt(...)
和 endAt(...)
,如 in this answer or the spec.
所述
如果您需要比这更复杂的东西,您需要
要么获取所有结果并在你前面过滤它们end/app代码
或使用 Cloud Function 在服务器上进行过滤并
将结果传递给前端。
(不推荐)您可以将周数(即 45_2020)记录为文档中的单独字段,并以此为过滤条件。这很混乱,您必须相信前端在该字段中输入了正确的信息。
我想检索 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-like 查询。
不确定您的问题是否涉及按周对结果进行分组。如果您只需要一组在某个日期开始和在另一个日期结束的结果,您可以使用 startAt(...)
和 endAt(...)
,如 in this answer or the spec.
如果您需要比这更复杂的东西,您需要
要么获取所有结果并在你前面过滤它们end/app代码
或使用 Cloud Function 在服务器上进行过滤并 将结果传递给前端。
(不推荐)您可以将周数(即 45_2020)记录为文档中的单独字段,并以此为过滤条件。这很混乱,您必须相信前端在该字段中输入了正确的信息。