firebase-使用键获取子数据库参考

时间:2018-10-03 02:32:02

标签: javascript firebase firebase-realtime-database

我正在为我的Web应用程序使用Firebase,并且还很新。 当我阅读文档时,它提到为了最小化下载大小(出于节省成本的原因),我们应该展平数据结构,以便我们不会下载不必要的数据。但是在整个文档中,他们总是会首先引用整个数据库:

dbRef = firebase.database().ref();

然后仅使用键采样数据:

childRef = dbRef.child(child_key)

我不确定我是否正确,但是至少我是这样理解的。

我的问题是,dbRef是否会破坏整个数据库?还是仅在上述情况下的childRef期间下载?

我在Google上搜索并发现一些价格令人难以置信的噩梦,因为此数据库问题无法正确处理。

  1. 自从我处于开发初期以来,是否还有其他需要担心的问题?

2 个答案:

答案 0 :(得分:1)

数据库引用与实际的数据库数据请求on('value')once('value'))之间存在差异

数据库引用表示数据库中的特定位置(或子/节点/引用)。 在引用对象上调用这些方法之一(child()还返回引用对象)的那一刻,您实际上正在获取数据,这是很昂贵的部分。 除此之外,只有一个包含引用的变量总是一件好事。

答案 1 :(得分:1)

ref()child()获得的Reference只是指向数据库中某个位置的指针。它非常便宜,而且创建一个对象不会执行任何数据访问。

如果您想从引用中实际获取数据,则必须在其上调用on()once()。在此之前,您所拥有的只是一个包含位置的微小对象。 Query对象也是如此。在您调用相同方法之一之前,它们不会执行任何查询。