Firebase 实时数据库 Android ChildEventListener 功能
Firebase Realtime Database Android ChildEventListener Functionality
为了减少数据传输(因为它花费了我们很多钱),我们正在更新我们的 Firebase 实时数据库值侦听器以使用 child 个侦听器。由于大多数字段不会更改,而我们只关心某些应用程序状态下更改最频繁的字段,因此仅使用 child 添加和 child 删除的侦听器似乎符合要求。
只为 child_added 和 child_removed 添加侦听器似乎在网络上完美运行。 iOS 似乎也是这样设置的,尽管我承认还没有在那里测试过。然而,Android 似乎需要我们添加一个庞大的侦听器来侦听 child 移动和 child 更改。
听这些,据我所知,在很大程度上违背了使用 child 听众而不是值听众的目的。由于任何时候 child 的任何数据发生变化(大多数时候我们并不关心其中的大部分),它将再次发送整个 child 的快照。我们试图通过仅监听 added/removed 和特定于环境的 child 属性来避免数据传输,但这需要我们基本上始终监听所有这些属性吗?是否有另一种方法来实现它,以获得我所希望的?
总结我们的object,我们有:
parent
--child A
----child A property 1
----child A property 2
--child B
----child B property 1
----child B property 2
等我们想知道什么时候添加或删除 child,但大多数时候我们不关心保持 child 的属性更新并且更愿意避免 re-transferring数据。这是如何在 Android 上完成的(特别是使用 Java)?谢谢!
当 ValueEventListener
和 ChildEventListener
用于数据库中相同的 query/path 时,传输的数据没有区别。
如果您只想知道 child 何时为 added/remove,而不想知道它们的内容,请考虑向您的树中添加一个额外的 top-level 分支,您只保留child 节点的键,然后 true
作为它的值。
为了减少数据传输(因为它花费了我们很多钱),我们正在更新我们的 Firebase 实时数据库值侦听器以使用 child 个侦听器。由于大多数字段不会更改,而我们只关心某些应用程序状态下更改最频繁的字段,因此仅使用 child 添加和 child 删除的侦听器似乎符合要求。
只为 child_added 和 child_removed 添加侦听器似乎在网络上完美运行。 iOS 似乎也是这样设置的,尽管我承认还没有在那里测试过。然而,Android 似乎需要我们添加一个庞大的侦听器来侦听 child 移动和 child 更改。
听这些,据我所知,在很大程度上违背了使用 child 听众而不是值听众的目的。由于任何时候 child 的任何数据发生变化(大多数时候我们并不关心其中的大部分),它将再次发送整个 child 的快照。我们试图通过仅监听 added/removed 和特定于环境的 child 属性来避免数据传输,但这需要我们基本上始终监听所有这些属性吗?是否有另一种方法来实现它,以获得我所希望的?
总结我们的object,我们有:
parent
--child A
----child A property 1
----child A property 2
--child B
----child B property 1
----child B property 2
等我们想知道什么时候添加或删除 child,但大多数时候我们不关心保持 child 的属性更新并且更愿意避免 re-transferring数据。这是如何在 Android 上完成的(特别是使用 Java)?谢谢!
当 ValueEventListener
和 ChildEventListener
用于数据库中相同的 query/path 时,传输的数据没有区别。
如果您只想知道 child 何时为 added/remove,而不想知道它们的内容,请考虑向您的树中添加一个额外的 top-level 分支,您只保留child 节点的键,然后 true
作为它的值。