检索 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.

所述

如果您需要比这更复杂的东西,您需要

  1. 要么获取所有结果并在你前面过滤它们end/app代码

  2. 或使用 Cloud Function 在服务器上进行过滤并 将结果传递给前端。

  3. (不推荐)您可以将周数(即 45_2020)记录为文档中的单独字段,并以此为过滤条件。这很混乱,您必须相信前端在该字段中输入了正确的信息。