我正在使用firebase数据库查询。但是,当他们在那里写文档时,阅读文档时几乎没有什么困惑next()
听众的addChildEventListener()
会在每次添加孩子时调用。
我的情况是我要查询所有孩子。是应该使用上述方法还是使用onChildAdded()
?
他们也在文档中提到,听众应该像addListenerForSingleValueEvent
答案 0 :(得分:2)
它们都是一样的,这取决于你将如何使用它。我个人认为 ChildEventListener 使用起来更灵活,因为您可以定义要对发生的操作做什么(例如添加,更改或删除子项时)。基于documentations,唯一的区别是 ValueEventListener 将执行“事情”。您定义了发生的更改(添加,更改或删除),因为它只有一个侦听器OnDataChange()
。同时, ChildEventListener 有4个侦听器,onChildAdded()
,onChildChanged()
,onChildRemoved()
和onChildMoved()
,因此您可以定义每个侦听器/操作中要执行的操作。
至于removeEventListener()
,这是必要的,因为firebase是被动的,firebase主动监听给定节点(数据库引用)发生的事情。因此,当您删除侦听器时,它将无法侦听给定节点,因此removeEventListener()
之后所做的任何更改都不会被firebase识别。是的, ChildEventListener 和 ValueEventListener 将始终主动监听并在每次添加新数据时执行定义的操作(onDataChange()
和onChildAdded()
。
CMIIW并原谅我的英语。 的问候,
RM