【问题标题】:Firebase getChildrenCount() is counting deleted dataFirebase getChildrenCount() 正在计算已删除的数据
【发布时间】:2016-07-03 21:26:53
【问题描述】:

我有一个父节点“posts”,我需要获取这个父节点下的子节点数。

  1. 我删除了整个“帖子”节点本身。
  2. 重新创建包含 1 个孩子的“帖子”。
  3. 使用来自 databaseRef.children("posts") 的快照的 .getChildrenCount()
  4. .getChildrenCount() 返回12(假设此时为1)
  5. 重复步骤 1 - 4。这次 .getChildrenCount() 返回 13。

上面的这个试验表明,被删除的孩子仍然影响计数。也许 Firebase 中有一个内部计数器在删除子级时不会重置。

以前有人遇到过这个问题吗?如何解决?

【问题讨论】:

  • ChildEventListener时能不能测试一下是否被调用了13次?您可能需要添加此侦听器以使您的本地数据库从服务器获取更改。
  • @shem 嗨,Shem,看来真正的问题出在客户端。我已经回答了我的问题。冷静:)
  • 您是否尝试过启用/禁用磁盘持久性选项? Enabling Offline Capabilities on AndroidFirebaseDatabase.getInstance().setPersistenceEnabled(false); 或保持数据同步ref.keepSynced(true);

标签: android firebase firebase-realtime-database


【解决方案1】:

我找到了解决方案。 可能有一些客户端缓存导致了这个问题(在我的例子中,Android 作为客户端)。 在我从手机中删除应用并安装并再次运行后,孩子的数量恢复正常

希望 Firebase 中的某个人可以解释这种行为,并可能告诉我们如何处理这种情况。无论如何要清除缓存?如果您已经在生产中并且根本不可能要求您的用户重新安装应用程序,这可能是一个真正的痛苦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2011-07-11
    • 2018-05-31
    • 1970-01-01
    相关资源
    最近更新 更多