Firebase:通过firebase.db()。ref('myRef')和firebase.db.ref('myRef')。once('value',回调)检索的数据之间的差异

时间:2019-10-19 09:57:22

标签: javascript firebase firebase-realtime-database

直接调用ref收到的数据之间的区别是什么?

console.log(firebase.db().ref('categories'))

相对于在value事件中通过dataSnapShot接收的数据,如下所示:

firebase.db().ref('categories').once('value', snapShot => {
       console.log(snapShot)
})

我测试了key属性的值在两种访问数据的方法中都是相同的,

console.log(firebase.db().ref('categories').key)

返回与以下内容相同的键:

firebase.db().ref('categories').once('value', snapShot => {
       console.log(snapShot.key)
})

谢谢

1 个答案:

答案 0 :(得分:1)

firebase.db().ref('categories')只是对数据库中“类别”点的引用。

它不包含存储在数据库中的数据。创建此类对象根本不涉及与数据库的任何通信。

https://firebase.google.com/docs/reference/js/firebase.database.Reference

在参考上执行once('value', callback)将启动通信。来自参考点的实际数据作为“数据快照”传递到callback

https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot

引用和DataSnapshots都具有key属性:引用知道其指向的位置,DataSnapshot知道其来自何处。