如何更新 FirebaseRecyclerAdapter 查询

Posted

技术标签:

【中文标题】如何更新 FirebaseRecyclerAdapter 查询【英文标题】:How to update a FirebaseRecyclerAdapter's query 【发布时间】:2016-12-29 08:07:16 【问题描述】:

如果我有 Query a,并且我将其设置为 FirebaseRecyclerAdapter

然后,我想不断创建一个新的Query 并更新FirebaseRecyclerAdapter

例如:

query = database.orderByChild("child");
query2 = database.orderByChild("child2"); 
adapter = new FirebaseRecyclerAdapter<...>(...,...,...,query)
   ...

现在,3 秒后,我正在寻找一种方法来更改查询。类似这样:

adapter.setQuery(query2);

有没有现成的方法呢?还是 Firebase 像往常一样懒得做这件事?

【问题讨论】:

【参考方案1】:

Firebase 数据库查询是不可变的:您无法更改现有查询的属性。

由于 FirebaseUI 中的适配器主要是底层数据结构的反映,因此我们也没有添加更改现有适配器查询的选项。

当我创建一个新查询时,我还会创建一个新适配器并将 that 绑定到(列表或回收器)视图。

与为新查询创建新适配器相比,替换现有适配器下的查询有什么优势?

【讨论】:

优点是我不必等待 Firebase 实施其过滤而不会浪费带宽。 puf 的明显优势是运行时过滤。以 SearchView 为例,如果我可以将搜索短语与新的/更新的查询联系起来,我就可以实现过滤。如果您添加了客户端过滤,请更新帖子。【参考方案2】:

您可以创建一个自定义适配器类来完成此操作,但它不是完全最佳的。见:https://***.com/a/53235783/683658

【讨论】:

以上是关于如何更新 FirebaseRecyclerAdapter 查询的主要内容,如果未能解决你的问题,请参考以下文章

mysql如何让时间属性不自动更新

如何关闭MyEclipse自动更新

如何取消WORD中的自动更新时间

mysql如何让时间属性不自动更新

为啥批量插入/更新更快?批量更新如何工作?

更新视图时如何更新表?