【发布时间】:2015-12-04 20:49:48
【问题描述】:
假设我的 Firebase 数据库中有这个结构
编辑: 我的 JSON 结构如下所示:
{
ad-comments:{
48a047b7-28a2-4037-925c-2a809b8d4445:{
-K4iGKXbniQZUi4r1SW7:{
Comment:""
Email:""
Date:""
Submitter:""
ID:""
}
-K4hxcKuuxcwuhScPR_v:{...}
}
eeb082e5-59ed-4c3b-8fcd-5af24a2bcada:{...}
}
users:{
48a047b7-28a2-4037-925c-2a809b8d4445:{
text:""
name:""
email:""
desc:""
phone:""
}
444198db-1052-4d8d-a1cd-c7e613fbe7c9:{...}
}
}
在控制器中,我正在检索用户(每个用户都有一个属性帖子)以使用 $firebaseArray 和 ng-repeat 将它们显示在视图上,如下所示:
var ref = new Firebase ("https://url.firebaseio.com/users");
$scope.posts = $firebaseArray("ref");
现在在视图中,我只是使用 ng-repeat 来遍历它们
<div ng-repeat="post in posts">
<div>{{post.name}}</div>
<div>{{post.text}}</div>
<div>Comments:<div>
<div><input type="text" ng-model="comment"></div>
<div><button ng-click="addComment(post, comment)">Add</button></div>
</div>
所以现在的问题是,当每个帖子位于不同节点时,我如何进行查询以请求每个帖子的所有 cmets,我按 ID 存储它们,但仍然不知道该怎么做。
在我将 cmets 存储在每个用户内部并且可以在每个帖子上显示 cmets 之前,但我遇到了安全规则问题,因为我已指定用户只能修改其自己的内容而不是其他人,而将 cmets 留在用户内部不允许其他人使用 cmets,所以我不得不更改并将 cmets 放在不同的节点中。
【问题讨论】:
-
你能在代码中提供你的 JSON 数据结构吗?每个位置下只有几个样本应该会有所帮助。看起来你真的很亲密:)
-
@DavidEast 对不起,我不明白你的需要,你能解释一下吗?谢谢:)
-
您上传了数据的图像,但它只提供了密钥。如果我看到了实际的 JSON 转储(只是一个示例,而不是全部),那就很容易回答了。
-
啊好的,明白了,我编辑了我的问题希望是你需要的@DavidEast
-
post的值是多少?ad-comments和posts有什么区别?帖子是users和`ad-cmets1 之间的数据连接吗?
标签: javascript angularjs firebase angularfire