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);
});
}
});