数据
{
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使用的方法,但不知道如何将纯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);
});
});
});
答案 0 :(得分:1)
您可以使用。$ 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);
});
}
});