gpt4 book ai didi

android - Firebase 的 addListenerForSingleValueEvent 和 addChildEventListener 方法有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 09:49:46 25 4
gpt4 key购买 nike

我正在处理 firebase 数据库查询。但是当他们在那里写的时候阅读文档时有点困惑 addChildEventListener() 监听器的 onChildAdded() 每次添加 child 时都会调用。

我的场景是我想查询所有 child 。应该使用上述方法还是使用 addListenerForSingleValueEvent 完成?

正如他们在文档中提到的那样,监听器应该像 ref.removeEventListener(originalListener) 那样分离

  1. 这是什么意思?
  2. 是否会在数据库中添加新数据时一次又一次地调用?

最佳答案

两者都是一样的,就看你怎么用了。我个人认为 ChildEventListener 使用起来更灵活,因为您可以定义针对发生的操作(例如添加、更改或删除 child 时)要做什么。基于 documentations ,唯一的区别是 ValueEventListener 将执行您定义的关于发生的更改(添加、更改或删除)的“事情”,因为它只有一个监听器 OnDataChange()。同时 ChildEventListener 有 4 个监听器,onChildAdded()onChildChanged()onChildRemoved() onChildMoved() 这样您就可以定义每个监听器/操作中要执行的操作。

至于removeEventListener(),这是必要的,因为firebase是响应式(Reactive)的,firebase主动监听给定节点(数据库引用)发生的事情。因此,当您删除监听器时,它不会监听给定节点,因此在 removeEventListener() 之后所做的任何更改都不会被 firebase 识别。是的,ChildEventListenerValueEventListener 将始终积极倾听并在每次添加新数据时执行定义的操作(onDataChange()onChildAdded( )

CMIIW,请原谅我的英语。问候,

马币

关于android - Firebase 的 addListenerForSingleValueEvent 和 addChildEventListener 方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36599524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com