javascript - 为复杂的 Firebase 查询提供 Angular 服务

标签 javascript angularjs firebase firebase-realtime-database angular-promise

如何将像下面这样的查询转换为 Angular 服务,该服务将返回将解析为 结果 的 promise 或没有 promise 的 结果 本身? 我想我需要以某种方式链接 promise ,但不知道如何实现,从未这样做过。

var result = [];
var groups = $firebaseArray(firebase.database().ref().child("users/" + uid + "/leagues"));
groups.$loaded().then(function (data) {
  _.each(data, function(one){
    firebase.database().ref().child('leagues/' + one.$id).once('value', function(snapshot) {
      result.push(snapshot.val());
    });
  });

}

最佳答案

你想要这样的东西吗?

function getGroups() {
  return $firebaseArray(firebase.database().ref().child("users/" + uid + "/leagues")).$loaded();
}

function getDataGroups(groups) {
  return $q.all(groups.map(function(one) {
    return firebase.database().ref().child('leagues/' + one.$id).once('value');
  }));
}

getGroups().then(getDataGroups).then(function(results) {
  //blabla
});

注意:我从未玩过 firebase(所以也许我犯了一些错误),但经过一些快速研究 $loaded()once()都返回一个 Promise。

关于javascript - 为复杂的 Firebase 查询提供 Angular 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39914162/

相关文章:

javascript - Angular : use a variable into <div>

AngularJS 两个指令与同一元素上的模板

firebase - 用于基于 AWS 驱动的浏览器的应用程序的 G Suite 身份提供商

angularjs - 如何在http POST(angularjs + expressjs)中随文件一起发送数据?

java - 切换 fragment 后Android应用程序崩溃

swift - 添加、更新或删除新日期时 Firebase 复制 tableView

javascript - 改变 Angular 中奇数 ng-repeat 的顺序?

javascript - 如何在 javaScript 对象中保存 DOM 元素?我想通过更新对象来更新页面

javascript - 发布和从服务器获取

javascript - 我的“完成”按钮不知何故转到了空白页面,除非刷新 -ajax,否则删除将不起作用