Kur*_*usu 4 javascript firebase firebase-realtime-database
我的Firebase数据库中有已知密钥列表
-Ke1uhoT3gpHR_VsehIv
-Ke8qAECkZC9ygGW3dEJ
-Ke8qMU7OEfUnuXSlhhl
Run Code Online (Sandbox Code Playgroud)
不是循环遍历每个密钥以获取其各自对象的快照,而是如何在一个统一的请求中查询每个密钥?Firebase是否提供此功能?
我发现了Promise.all()看起来很有前途的功能(我发誓没有双关语)但是我不确定如何使用标准方式获取firebase数据,如此
var userId = firebase.auth().currentUser.uid;
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
var username = snapshot.val().username;
});
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
Fra*_*len 14
正如David的评论所暗示的那样:如果项目在某种程度上相关,那么您可以构建一个查询来获取所有项目.
否则这将成功:
var keys = [
"-Ke1uhoT3gpHR_VsehIv",
"-Ke8qAECkZC9ygGW3dEJ",
"-Ke8qMU7OEfUnuXSlhhl"
];
var promises = keys.map(function(key) {
return firebase.database().ref("/items/").child(key).once("value");
});
Promise.all(promises).then(function(snapshots) {
snapshots.forEach(function(snapshot) {
console.log(snapshot.key+": "+snapshot.val());
});
});
Run Code Online (Sandbox Code Playgroud)
请注意,使用单独的请求检索每个项目并不像您想象的那么慢,因为请求都是通过单个连接发送的.有关详细说明,请参阅使用查询加快获取社交网络应用的帖子,而不是反复观察单个事件.
| 归档时间: |
|
| 查看次数: |
4398 次 |
| 最近记录: |