該文檔說,他們都在Firebase數據庫位置監聽更改。ChildEventListener和ValueEventListener Firebase接口有什麼區別?
7
A
回答
8
他們這樣做幾乎同樣的事情,雖然ChildEventListener可有時更靈活:與ChildEventListener可以爲4點的動作(onChildAdded
,onChildChanged
,onChildMoved
和onChildRemoved
)指定不同的行爲,而ValueEventListener只提供onDataChanged
。
此外,ChildEventListener在兒童位置提供DataSnapshots(數據的不可變副本),而ValueEventListener提供整個節點的DataSnapshot。
5
ValueEventListener僅在特定值發生更改時才觸發,但ChildEventListener不僅偵聽該節點的值,還偵聽樹的所有子節點。說,你有節點,有一個孩子。 當此節點更改時,ValueEventListener將被觸發,但ChildEventListener也會在更改後的子值被更改時觸發。文檔說,你應該謹慎使用ChildEventListener - 它可以觸發很多次。
+0
謝謝,但值事件監聽器每次有變化時都會獲得新的快照嗎?您可以將範圍配置爲與childeventlistener有效執行相同操作的整個數據庫。這是我的困惑 – Gil
相關問題
- 1. IComparable和IEquatable接口有什麼區別?
- 2. Android中的RecyclerView的ValueEventListener vs ChildEventListener
- 3. Socket.IO和Firebase有什麼區別?
- 4. Firebase - ref和孩子有什麼區別?
- 5. angularFire()和$ firebase()有什麼區別?
- 6. Firebase ValueEventListener
- 7. REPL和口譯員有什麼區別?
- 8. MySQL中的套接字和端口連接有什麼區別?
- 9. List接口和Collection接口的主要區別是什麼?
- 10. android firebase stop ChildEventListener
- 11. 範圍和連接有什麼區別?
- 12. ,和+連接時有什麼區別?
- 13. GCC和LD鏈接有什麼區別?
- 14. 鏈接和綁定有什麼區別?
- 15. Objective-c中的類和類接口有什麼區別?
- 16. USB設備的配置和接口有什麼區別?
- 17. 在Typescript中,類型和接口有什麼區別?
- 18. 抽象類和接口之間有什麼區別?
- 19. 使用類和接口有什麼區別?
- 20. Java中Collection和Set接口有什麼區別?
- 21. 模擬類和接口之間有什麼區別?
- 22. 接口映射和中介模塊有什麼區別?
- 23. Delphi和Lazarus(FPC)的接口實現有什麼區別?
- 24. Java中的公共和私人接口有什麼區別
- 25. Erlang Web網關接口(EWGI)和Webmachine之間有什麼區別?
- 26. TypeScript中的「聲明類」和「接口」有什麼區別
- 27. Spring的TestExecutionListener接口中prepareTestInstance和beforeTestMethod有什麼區別?
- 28. Core Data,Firebase和Realm有什麼區別?他們有什麼優點和缺點?
- 29. 有什麼區別`和$(Bash中有什麼區別?
- 30. 有什麼區別? :和||
不是一個不可變的DataSnapshot?所以唯一的區別是ChildEventListener有4個特定的方法,而ValueEventListener有1個寬泛的方法(任何變化) – Gil
是的。 DataSnapshot始終是不可變的。你是對的 - 如果你需要一個廣泛的方法,你寧願使用ValueEventListener。如果您有一些綁定功能來添加/更改/移動/移除子項目,則應使用ChildEventListener。 –
此外,這個答案http://stackoverflow.com/a/34532739/2915480涉及到「Firebase事件保證」的有趣話題。這再一次證明了你對ValueEventListener的描述比ChildEventLIstener更廣泛。 –