我正在构建一个AngularFire应用程序,而且我正在努力应对数据库的结构。该应用程序适用于用户,上传和评论,非常类似于Firefeed示例,但不同。我试图让我的数据库尽可能平坦,所以我想让上传与用户区别开来(如果发布了关于上传的评论,则应该在每个用户时间线中更新)。
此时,如果上传过帐,则会转到“上传”状态。分支,除了“用户”之外。每个用户都会在其Feed中获取上传的ID:uploadUid = true,因此数据不会重复。
问题是,如何通过引用真实的方式将数据从上传中提取到需要在其Feed上进行上传的用户?因此,例如,我如何遍历用户1的源,因为我只有" -KGkxzQj0FM2CMAXo5Em" :true",我需要上传的信息,这是在'上传'分支。
修改
{
"uploads" : {
"-KGkxzQj0FM2CMAXo5Em" : {
"author" : "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d",
"date" : 1462184179564,
"name" : "Zorro",
"reasonUpload" : "Test",
"uploadTitle" : "Title 1",
}
},
"users" : {
"87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : {
"date" : 1459369248532,
"feed" : {
"-KGkxzQj0FM2CMAXo5Em" : true
},
"followers" : {
"e3de536b-03a1-4fb4-b637-ebcebaae55c6" : true
},
"following" : {
"e3de536b-03a1-4fb4-b637-ebcebaae55c6" : true
},
"regUser" : "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d",
"uploads" : {
"-KGkxzQj0FM2CMAXo5Em" : true
},
"name": "Zorro"
},
"e3de536b-03a1-4fb4-b637-ebcebaae55c6" : {
"date" : 1459369285026,
"feed" : {
"-KGkxzQj0FM2CMAXo5Em" : true
},
"followers" : {
"87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : true
},
"following" : {
"87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : true
},
"regUser" : "e3de536b-03a1-4fb4-b637-ebcebaae55c6"
}
}
}
如何为每个粉丝提供帖子的结构(这是Firefeed使用的):
self._mainUser.child("followers").once("value", function(followerList) {
followerList.forEach(function(follower) {
if (!follower.val()) {
return;
}
var childRef = self._firebase.child("users").child(follower.name());
childRef.child("feed").child(uploadRefId).set(true);
});
});
编辑2
这就是我现在用来获取每个关注者(在我的控制器中)的Feed中的特定uploadID:
firebaseAuth.$onAuth(function (authUser) {
if (authUser) {
var currentUser1 = new Firebase(FIREBASE_URL).child("users").child($rootScope.currentUser.$id);
var firebase = new Firebase(FIREBASE_URL);
currentUser1.child("feed").once("value", function(list) {
list.forEach(function(follower) {
var childRef = firebase.child("uploads").child(follower.key());
// childRef.child("feed").push(upload);
var childRefArray = $firebaseArray(childRef);
$rootScope.feedd = childRefArray;
});
});
} // if(authUser)
}); // auth.$onAuth
编辑3
在我的HTML中:
<div class="feed-total" ng-repeat="feed in feedd | orderBy: '-date'">
<div>
{{feed.reasonUpload}} // this should be "Test"
</div>