如何使用 angularFire 双向绑定父节点并查找其子主数据



Data

{
 folders: {
  id123: {
   authorizedUsers: {
    u123: true,
    u456: true
   }
  }
 },
 users: {
  u123: { name: 'David' },
  u456: { name: 'Ali' }
 }
}

有了上面的数据,我可以使用

$folder = $firebase(fbRef.child('folders').child('/id123'))保持数据同步。

由于新的 angularFire ($firebase) 只接受 1 个参数 (ref),如何使用回调来获取authorizedUsers key并检索节点users相关主数据?

以下是我在没有$firebase的情况下使用的方法,但不知道如何将纯火碱 API 与$firebase结合使用

$scope.authorizedUsers = [];
fbRef.child('folders/').child($routeParams.folderID).on('child_added', function(ss) {
  fbRef.child('users/').child(childSnapshot.name()).once('value',function(user) {
    $timeout(function() {
      $scope.authorizedUsers.push(user.val());
      console.log($scope.authorizedUsers);
    });
  });
});
您可以使用

.$on('loaded') 事件来查找数据何时加载,然后创建新的$firebase引用来获取其他记录。例如:

var folder = $firebase(fbRef.child('folder').child('id123'));
folder.$on('loaded', function(data) {
  var users = data['authorizedUsers'];
  for (var user in users) {
    $firebase(fbRef.child('users').child(user)).$on('loaded', function(userData) {
      $scope.authorizedUsers.push(userData);
    });
  }
});

最新更新