正如标题所说,我正在尝试将评论发布到特定的用户状态。到目前为止,我可以发表评论并将其保存到firebase中,但这些评论会显示在所有状态中,当然这是因为它们未被引用到该特定用户状态。
我怎样才能做到这一点?
有人告诉我,每个评论都应该有一个属性,其中包含状态或用户的ID才能进行查询。但那就是我不知道该怎么做。
这是我的firebase结构:
火力地堡:
-users
-- 444198db-1052-4d8d-a1cd-c7e613fbe7c9
--- Status
--- StatusDate
-comments
-- K-nRDUXT07BllsO7T99
--- comment
--- commentDate
以下是我将代码保存到firebase中的comments节点的代码:
$scope.addComment = function(){
console.log("Adding Comment");
var comment = $scope.comment;
console.log(comment);
var refcomment = new Firebase("https://firebaseurl/comments/");
refcomment.push({
comment: comment,
commentDate: Firebase.ServerValue.TIMESTAMP
});
}
这里是显示评论的代码(ng-repeat):
refcomments = new Firebase("https://firebaseurl/comments/");
$scope.comments = $firebaseArray(refcomments);
HTML:
<div ng-controller="ComentariosCtrl">
<div class="input-group">
<input type="text" class="form-control" placeholder="Comment Here..." ng-model="comment">
<span class="input-group-btn">
<button class="btn btn-default" type="button" ng-click="addComment()">Post!</button>
</span>
</div><!-- /input-group -->
<div class="cmt">
<div class="panel" ng-repeat="comentarios in comments">
<hr >
<p>{{comentarios.comment}}</p>
</div>
</div><!--FIN DE COMENTARIOS -->
</div>
有什么想法吗?
提前致谢
答案 0 :(得分:0)
不清楚将评论发布到特定用户状态&#39;完全是指,但这里有几个想法(我希望我在正确的轨道上)
在你的例子中,没有办法关联&#39;用户评论。有大约100种不同的方法可以做到这一点,但是一个可以轻松查询用户评论的扁平化结构是:
users
user_id_0001
user_name: "Bill"
user_status: "some status"
status_date: "some status_date"
user_id_0002
user_name: "Ted"
user_status: "some status"
status_date: "some status_date"
comments
comment_id_0001
made_by_user_id: "user_id_0001"
comment: "Hey Ted!"
comment_id_0002
made_by_user_id: "user_id_002"
comment: "Hey Bill! Let's go on a most excellent adventure"
然后可以查询comments_by_user_id =&#34; user_id_0001&#34;这将检索比尔的所有评论。请记住,在Firebase中,奉承越多越好。优良!
另一个不太灵活的选择是将用户评论存储在他们自己的用户节点中
users
user_id_0002
user_name: "Ted"
user_status: "some status"
status_date: "some status_date"
comments
comment_id_0001:
comment: "Just call me Neo"
timestamp: "some timestamp"
comment_id_0002:
comment: "I feel like I'm in the Matrix"
timestamp: "some timestamp"
comment_id_0003:
comment: "You trying to tell me.. that I can dodge bullets?"
timestamp: "some timestamp"
现在,如果您想要检索所有用户评论,他们就在他们自己的用户节点内/ users / user_id_0002 / comments
这实际上取决于您对数据的使用情况。
关键是要将数据与其存储的节点名称取消关联。使用push()函数将生成唯一ID可以帮助实现这一点 - 在上面的示例中user_id_0001以这种方式生成comment_id_0001