Firebase Datasnapshot 是否包含参考中的所有数据?firebase中数据消耗的一些清晰度

苏伦达

我知道有很多关于 Firebase Datasnapshot 的问题,但我仍然对我的疑问没有澄清。事情是这样的

我在 Firebase 实时数据库中有这样的数据结构,

在此处输入图片说明

如果我在上面的参考中有一个100kb 的文件, val ref = FirebaseDatabase.getInstance().getReference("Groups") 如果我调用` ref.addValueEventListener(object : ValueEventListener {

        override fun onCancelled(p0: DatabaseError) {
        }

        override fun onDataChange(p0: DataSnapshot) {
           // access getvalue here
        }
    })

`

我得到了参考中数据的快照作为 p0。

问题 1此特定快照是否包含参考中的所有可用数据(此下载的快照大小是否为100kb?)。如果我在 onDataChange 的第一行切断互联网,我是否可以访问 datasnapshot 中的所有数据,或者只有当我p0.getValue在 onDataChange 上调用命令时才会下载数据,datasnapshot 就像数据引用一样?

问题2

在我的代码中,我在“组”上放置了一个 ValueEventListener,因此如果 person2 活动中发生单个更改(添加新活动或修改现有数据),我将下载“组”中的全部数据,我想避免随着组变大而消耗更多数据。修改person2数据或添加新活动时,如何有效地仅从person2获取数据。我尝试将子事件侦听器添加到“组”,其行为与 ValueEventListener 相同。我无法为每个人添加侦听器,因为人数未知,而且它可以是更大的数字,我不想在我的代码中添加那么多侦听器。我的代码已经在生产中,所以我什至无法更改数据库结构。

道格史蒂文森
  1. 是的,当您在回调中收到快照时,快照将包含内存中的所有内容。您甚至根本不需要进入快照。

  2. 使用 ValueEventListener,如果在附加侦听器时快照下的任何内容发生更改,则只会传输更改。对于子项的每次更改,不会完全下载整个快照。但是,您必须编写代码来准确确定快照中的更改内容。这可能很困难,因为您必须将之前快照和新快照中的所有子值相互比较。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

firebase datasnapshot控制孩子

如何从Firebase DataSnapshot获取数据?

Firebase数据库参考与DataSnapshot

如何使用DataSnapshot对Firebase中的所有数据制作一个ArrayList?

Firebase onChildChanged返回null DataSnapshot

Firebase DataSnapshot 未填充对象

无法使用 dataSnapshot 从 Firebase 检索数据

RecyclerView不会从Firebase Datasnapshot检索数据

Firebase - 从 dataSnapshot 检索数据作为 LatLng 对象

为什么使用dataSnapshot时无法从Firebase获取一些数据

Firebase DataSnapshot.getValue()为null

如何遍历Firebase datasnapshot子项?扑

Firebase的云功能:枚举DataSnapshot属性

Firebase datasnapshot显示错误怎么办?

Android Firebase DataSnapshot 投射到类

从Firebase Datasnapshot获取JSON密钥值

如何正确解析Firebase DataSnapshot值

getChildrenCount的Firebase Datasnapshot设置为零

使用 Flutter 从 Firebase DataSnapshot 获取嵌套的 JSON

Android Firebase ChildEventListener onChildRemoved dataSnapshot 内容

迭代DataSnapshot时发生Firebase ClassCastException

Firebase 函数 - 获取当前 DataSnapshot 的兄弟

使用 Datasnapshot 检查 URL 是否存在 Firebase 数据库

在 DataSnapshot 中从 Firebase 检索数据(不按顺序)

反序列化Firebase dataSnapshot到Kotlin数据类

Android Studio Firebase数据库DataSnapshot返回null

Firebase数据库DataSnapshot无法正常工作

将Firebase Datasnapshot转换为可编码的JSON数据

Firebase如何检查快照的子代本身是否为Datasnapshot类型