我不太明白我什么时候应该使用DatabaseReference和DataSnapshot。
在我的应用程序中,我似乎使用它们而没有真正的区别(可能除了写入Firebase,在这种情况下没有制作DataSnapshot)。
答案 0 :(得分:4)
DatabaseReference是所有数据库操作的起点。这允许您读取,写入和创建新的DatabaseReferences。
DataSnapshot是Firebase位置上高效生成的不可变数据副本。它们无法修改,永远不会改变。
我认为,在一个引擎盖下,DataSnapshot将是一个比DatabaseReference更有效的对象,并且是一个更安全的对象,可以在只读方案中使用,因为这将是一个不可变的对象,没有附加任何额外的数据比如DatabaseReference。
来源:
DatabaseReference https://firebase.google.com/docs/reference/android/com/google/firebase/database/DatabaseReference
DataSnapshot https://firebase.google.com/docs/reference/android/com/google/firebase/database/DataSnapshot
答案 1 :(得分:1)
DatabaseReference 用于指代数据库结构中特定节点的位置。 每当从数据库触发侦听器事件时, DataSnapshot 用于从节点获取数据。数据以键值对的形式提取。