【问题标题】:FirestorePagingAdapter not update Firestore data when fields changed?字段更改时,FirestorePagingAdapter 不更新 Firestore 数据?
【发布时间】:2020-09-09 06:36:59
【问题描述】:

目前我正在使用 FirestoreRecyclerAdapter 和 FirestoreRecyclerOptions,他可以监听数据更新,但是这种方法会消耗大量数据,所以,我尝试使用 FirestorePagingOptions 和 FirestorePagingAdapter,他可以对数据进行分页并获得经济的日期,但是,当使用 RecyclerView 方法更新数据时,我有 adapter.startListening(),但是没有用。

这项工作非常好,但是消耗的数据很强。

public class AnuncioAdapter extends FirestoreRecyclerAdapter<AnuncioPrincipal, AnuncioAdapter.AnuncioHolder> {

    public AnuncioAdapter(FirestoreRecyclerOptions<AnuncioPrincipal> options)
    {
        super(options);
    }

该方法经济适用,但不能更新...

public class AnuncioAdapter extends FirestorePagingAdapter<AnuncioPrincipal, AnuncioAdapter.AnuncioHolder> {

    public AnuncioAdapter(FirestorePagingOptions<AnuncioPrincipal> options)
    {
        super(options);
    }

【问题讨论】:

    标签: firebase google-cloud-firestore android-recyclerview


    【解决方案1】:

    FirebaseUI 分页适配器不使用实时侦听器。根据documentation

    FirestorePagingAdapter 通过在页面中加载文档将 Query 绑定到 RecyclerView。这导致了时间和内存高效的绑定,但是它放弃了FirestoreRecyclerAdapter 提供的实时事件[原文如此]

    因此,您必须做出选择:您可以进行实时更新,也可以进行分页,但不能同时使用 FirebaseUI 附带的适配器。

    【讨论】:

    • 使用 FirestoreRecyclerAdapter
    【解决方案2】:

    很简单

    1. 您是否在方法中使用简单的 FirestorePagingAdapter,例如 loadAdapter()
    2. 现在执行普通侦听器并调用 loadAdapter() 以针对每次更改重新加载。

    【讨论】:

      猜你喜欢
      • 2019-07-12
      • 2016-08-23
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      相关资源
      最近更新 更多