我应该使用不同的数据结构还是过滤 FirebaseRecyclerAdapter? [复制]

Posted

技术标签:

【中文标题】我应该使用不同的数据结构还是过滤 FirebaseRecyclerAdapter? [复制]【英文标题】:Should I use a different data structure or filter the FirebaseRecyclerAdapter? [duplicate] 【发布时间】:2021-11-24 22:07:34 【问题描述】:

我正在使用 FirebaseRecyclerAdapter 向我正在从事的大学应用培训项目中的学生显示通知列表。数据存储在以下结构中:

每个学生都有一个部门、一年和一个语言领域

每个公告都有一个目标部门、年份和语言 我的目标是只显示针对当前登录学生的公告,但我找不到在 firebase 数据库中执行此类查询的方法。

获取所有公告不会导致任何隐私问题,因此我想到了过滤 FirebaseRecyclerAdapter 中的数据。我看到 (this) 答案实现了 Filterable 然后调用 FirebaseRecyclerAdapter.getFilter().filter() 方法进行过滤。但是,每次从数据库中获取更多数据时,我都需要自动运行 filter() 方法,而我不知道该怎么做。

【问题讨论】:

【参考方案1】:

要仅获取当前用户的公告,您需要执行两个步骤:

    加载当前用户,这样您就可以查找他们的department。 仅为该部门的公告创建查询,例如:

代码:

Query query = FirebaseDatabase.getInstance().getRef("Announcements").orderByChild("department").equalTo("CCNE");

然后您可以根据查询创建FirebaseRecyclerAdapter,而不是直接引用所有Announcements

【讨论】:

我的问题是我不能做这样的查询,因为我也需要根据年份和语言进行过滤,而不仅仅是部门 包含在您的问题中会很有用。但见***.com/questions/26700924/…

以上是关于我应该使用不同的数据结构还是过滤 FirebaseRecyclerAdapter? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从 firebase-realtime-database 过滤数据

两个 Web 应用程序 - 一个 firebase 项目:我应该为一个应用程序创建两个应用程序还是两个托管站点?

我应该将图片上传到 Cloud Firestore 还是 Firebase Storage?

如何使用带有电话号码的 Firebase DB 过滤联系人列表

如何遍历firebase随机生成的不同键值

我应该使用数据仓库还是数据库或其他东西?