如何在Firebase中使用(= true)引用

时间:2016-05-01 12:04:54

标签: javascript angularjs firebase firebase-realtime-database angularfire

我正在构建一个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>

0 个答案:

没有答案