FirebaseIndexRecyclerAdapter onDataChanged 被调用但 getItemCount() 始终返回 0

2024-05-05

我在用着FirebaseIndexRecyclerAdapter https://github.com/firebase/FirebaseUI-Android/blob/master/database/src/main/java/com/firebase/ui/database/FirebaseIndexRecyclerAdapter.java它获取 keyRef 和 dataRef,并且对于获取所有 dataRef 的子项(其密钥作为子项存在于 keyRef 中)非常有帮助。

数据显示正确,但如果我覆盖onDataChanged隐藏进度条和/或显示空状态取决于 itemsCount (我已经做过的事情FirebaseRecyclerAdapter并按预期工作)但是getItemCount总是返回 0(!)

private class MYAdapter extends FirebaseIndexRecyclerAdapter<Item, ItemHolder> {
    .
    .

    @Override
    protected void onDataChanged() {
        super.onDataChanged();
        // getItemCount() == 0 here always
    }

    .
    .
}

我调查过,原因是FirebaseIndexRecyclerAdapter正在使用FirebaseIndexArray这是压倒一切的getItemCount并返回mDataSnapshots.size()但数据尚未加载 -onDataChanged被调用是因为 keyRef 已加载 - 事实上我可以在调试中看到密钥已加载(具有正确的计数),但不幸的是它们是私有的,所以我无法使用它们来获取计数。

我知道我可以覆盖onChildChanged然后打电话getItemCount并获得正确的计数(我已经完成),但我仍然不知道是否没有项目,并且我需要显示空状态。

Using com.firebaseui:firebase-ui:1.2.0

我缺少什么吗?

Note- 我知道我可以在数据旁边管理我自己的计数(子项),并在设置适配器之前加载它,但我将其保存为最后的手段。

Thanks!


所以,在打开一个issue https://github.com/firebase/FirebaseUI-Android/issues/719在 FirebaseUI-Android github 存储库中,按照 @Frank van Puffelen 的建议,我从 @SUPERCILEX 得到了答案说onDataChanged确实被打破了FirebaseIndexRecyclerAdapter并将在即将推出的 v2.0 中修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FirebaseIndexRecyclerAdapter onDataChanged 被调用但 getItemCount() 始终返回 0 的相关文章

随机推荐

  • 在 Ruby/Rails 模型/控制器中引用关联/属性时 *、self.* 和 @* 之间的差异

    假设 Rails 模型具有持久 非持久属性 那么引用它们的最佳实践是什么 如果您查看公开可用的代码 就会发现使用了不同的模式 例如 如果您有从一个模型到另一个模型的关联 使用有什么区别self association name and 协会
  • 配置失败,因为找不到 libcurl

    我正在尝试使用从远程服务器提取一些 json 数据fromJSON gt server lt http 111 111 000 00 3000 gt streams lt fromJSON paste server output strea
  • Python3.8 pytube ImportError:无法从“pytube”(未知位置)导入名称“YouTube”

    当我尝试运行我的脚本时 只有这两行 from pytube import YouTube YouTube http youtube com watch v 9bZkp7q19f0 streams first download 我收到错误 I
  • Cake PHP 中的自定义分页

    我是 cakePHP 的初学者 我不想在 cakePHP 中创建自定义分页 功能 paginator gt numbers 它显示的页码如下 1 2 3 4 通过查看选项 有一些选项可以更改分隔符 添加样式类 css 等等 我想要的是这样的
  • VBA COM 库中的这些 _B_var_Xxxxx 和 _B_str_Xxxxx 成员到底是什么?

    想象一下以下函数调用 foo UCase bar 我正在解析这段代码 并确定UCase是一个函数调用 现在我想将该函数调用解析为定义它的 COM 库中函数的声明 这个想法是实现一个代码检查来确定何时Variant当使用内置函数时String
  • 使用 openCV 和 python 检测物体

    我正在尝试使用 OpenCV 和 Python 检测下图中的白点 我尝试使用函数 cv2 HoughCircles 但没有成功 我需要使用不同的方法吗 这是我的代码 import cv2 cv import numpy as np impo
  • 使用多个 DispatchQueue.main.async 查看冻结

    视图冻结而数据是获取并显示 以我的理解fetchBoard and initUserInfo 不要并行执行 因为视图仅在以下情况下加载fetchBoard 加载板 我担心如果使用DispatchQueue main async多次冻结视图
  • Java - Servlet 的默认 contentType

    在servlet中 通常我们会指定一个contentType 然后我们就可以打印出html代码了 response setContentType text html PrintWriter out response getWriter 如果
  • IMAP CONDSTORE 是否得到广泛支持?

    我正在构建一个简单的网络邮件 我想使用 IMAP 的 CONDSTORE 扩展 它允许获取自某个日期以来已更改的所有内容 消息 标志等 这对于将电子邮件客户端同步到IMAP 服务器 但是我完全不知道大多数 IMAP 服务器是否真正支持此 I
  • ASP MVC4 - 通过视图模型传递列表以查看

    我有一个模型人物 其中包括出生日期等字段 我想将所有人的列表以及每个人的计算年龄传递给视图 因此 视图模型 public class vm PersonList public Person Person get set public int
  • 在没有事件的情况下从 HTML 执行 javascript 函数

    我希望从 HTML 页面调用 javascript 函数 并且我do not希望它依赖于任何事件 该函数位于单独的 js 文件中 因为我希望在许多网页中使用它 我也将变量传递给它 我试过这个 HTML fp footer2 js中的函数 f
  • 检查远程计算机上的进程所有者,并在所有者为 xyz 时将其终止

    嘿 我想在远程计算机上检查特定进程的进程所有者 并在所有者是 xyz 时杀死它 我已经成功地检查了它的主人 但我不知道当主人是 xyz 时如何杀死它 到目前为止我所拥有的 get wmiobject computername remoteP
  • PreferenceActivity 如何使用自定义首选项文件

    我第一次尝试偏好是在不了解PreferenceActivity 所以现在我有一个应用程序将所有用户首选项存储在特定的首选项文件中 我想迁移到使用 PreferenceActivity 但我也希望我的用户保留他们的偏好 有没有办法告诉我的 P
  • 如何使用 diff 排除多行模式?

    我想对两个 xml 文件进行比较 但忽略 2 3 行模式 例如 假设我想在比较下面的 xml 格式时忽略可用性和价格 这是我到目前为止所拥有的 diff I
  • 是否有与 SQL Server newsequentialid() 等效的 .NET

    我们使用 GUID 作为主键 您知道默认情况下它是集群的 将新行插入表中时 它将插入表中的随机页 因为 GUID 是随机的 这会对性能产生可衡量的影响 因为数据库始终会分割数据页 碎片 但我使用顺序 GUID 的主要原因是因为我希望将新行插
  • jQuery AJAX 或 XHR 请求从完成回调触发失败回调

    在我的 jQuery XHR 的完成处理程序 从 get 调用创建 中是否有一种方法可以查找响应中的问题 然后使用自定义错误消息触发注册的后续处理程序 即失败和始终 像这样的东西 get URL done function data sta
  • Gem .gemspec 中的本地依赖关系

    我正在开发一个 gem Gem A 它使用了我也编写的另一个 gem Gem B 到目前为止 Gem B 已添加到 Gem A 的 gemspec 中 gem add dependency gem a gt 0 0 4 但我现在发现需要使用
  • 在闪亮的应用程序中选择文件夹或文件夹目录

    我在使用闪亮时遇到问题 我想选择保存我要在应用程序中使用的所有文件的文件夹 方法是 1 将工作目录设置为该文件夹路径 或 2 将此文件夹内的所有 csv 数据上传到我的应用程序以进行进一步处理 1 我找到了shinyFiles包 但它非常非
  • 在 (PHP/GD) 中调整图像大小

    我正在寻找帮助 建议 以找到最有效的方法来使用以下方法将图像大小调整为尽可能小PHP GD同时保留原始图像的纵横比 但确保调整后的图像大于定义的最小宽度和高度 例如 调整大小后的图像必须具有宽度 gt 400 且高度 gt 300但应尽可能
  • FirebaseIndexRecyclerAdapter onDataChanged 被调用但 getItemCount() 始终返回 0

    我在用着FirebaseIndexRecyclerAdapter https github com firebase FirebaseUI Android blob master database src main java com fir