繁体   English   中英

检索 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 的查询而设计的。

不确定您的问题是否指按周对结果进行分组。 如果您只需要一组在某个日期开始并在另一个日期结束的结果,您可以使用startAt(...)endAt(...)本答案规范中所述

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

  1. 要么获取所有结果并在您的前端/应用程序代码中过滤它们

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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