使用limitToLast添加/推送到firebase ref?

时间:2017-10-20 08:25:48

标签: javascript firebase firebase-realtime-database angularfire

Firebase规定最大读取数为256 MB,所以......

是否可以使用limitToLast

推送参考号
var ref = firebase.database().ref();

ref.child("projects").limitToLast(1).push({
    username: name,
    email: email,
    profile_picture : imageUrl
  });

由于

1 个答案:

答案 0 :(得分:0)

从数据库中读取时,应限制,过滤或以其他方式限制查询,以使其不会达到256MB的限制,或检索过多的数据。写入数据库时​​,只需确保单个写入请求的大小不超过256MB。

使用firebase.database().ref().child()生成Reference到数据库中的特定位置,但不执行任何数据库或网络操作。然后,这可用于向/从数据库读取/写入数据。

limitToLast()上调用Reference(或任何其他过滤方法)会产生Query。同样,Query本身不执行任何数据库或网络操作。但是,只能指示Query执行写入操作。

只有在ReferenceQuery上调用特定方法时才会执行网络操作:

  • on()once()上调用ReferenceQuery或其变体时,会执行阅读操作。
  • 仅在set()上调用push()remove()update()Reference或其变体时执行写入操作。

总之,使用push()写入数据库不会首先读取数据,因此您无需担心达到256MB的读取限制。最后,由于limitToLast()会返回Query,因此您无法就此发送push()