正如标题所示,我正在尝试对特定用户状态发表评论。到目前为止,我可以发布评论并将其保存到firebase中但这些评论会显示在所有状态中当然,这是因为它们没有引用到特定的用户状态。
我怎么才能做到呢?
有人告诉我,每个评论都应该有一个带有状态或用户ID的属性,以便能够进行查询。但那就是我不知道该怎么做。
这是我的firebase结构:
重火力点:
-users
-- 444198db-1052-4d8d-a1cd-c7e613fbe7c9
--- Status
--- StatusDate
-comments
-- K-nRDUXT07BllsO7T99
--- comment
--- commentDate
下面是我在firebase中将注释保存到注释节点的代码:
$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>
任何想法?
Thanks in advance
目前还不清楚"在一个特定的用户状态下发表评论"到底是什么意思,但这里有一些想法(我希望我在正确的轨道上)
在你的例子中,没有办法将用户与评论"关联"起来。有大约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"
然后可以查询评论节点made_by_user_id = "user_id_0001",这将检索Bill的所有评论。记住在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都是通过这种方式生成的。