Firebase(2016)浅层查询

jcu*_*nod 15 javascript firebase firebase-realtime-database

我正在尝试使用Firebase(自Google新版本发布以来).

在原始版本的Firebase中,参数shallow=true将返回一个对象,其中包含所请求的树/分支根的{ key: true }每个对象key(因此,您只知道子(ren)存在的事实,而不是返回子项).这很有用,因为您不一定需要来自子节点的所有数据(特别是如果有很多数据).

有没有办法用谷歌的新版Firebase做到这一点?我想的是:

firebase.database().ref('/data/?shallow=true').once('value', function(snapshot) {
  // do something with snapshot
}
Run Code Online (Sandbox Code Playgroud)

上面的代码snapshot.val()返回null,如果我正确读取文档,似乎这个功能已经消失了.

Fra*_*len 27

?shallow=trueFirebase Database 2.x中的参数仅在REST API中可用.请参阅https://www.firebase.com/docs/rest/guide/retrieving-data.html#section-rest-uri-params.

在新的Firebase Database 3.x中,相同的参数仍然只能在REST API中使用.请参阅https://firebase.google.com/docs/database/rest/retrieve-data#shallow

您正在使用Firebase SDK(来自它的外观的JavaScript),它从不支持此参数.

有关过去讨论过的更多问题,请参阅:

  • 有没有计划改变这个?如果您总是被迫下载节点的所有后代,那么编写高效的值侦听器非常困难. (6认同)
  • 我还想请求为iOS SDK添加浅选项.我的数据库中有超过150万件物品. (4认同)