【发布时间】:2014-06-01 03:24:40
【问题描述】:
以下是场景:我有一个主题列表,每个主题都包含帖子,每个帖子都被用户列表“点赞”。因此我的数据看起来像这样:
"topics": {
"topic1": {
"posts": {
"post1": true,
"post2": true
}
}
},
"posts": {
"post1": {
"title": "An awesome post",
"likes": {
"user1": true
}
},
"post2": {
"title": "An even better post",
"likes": {
"user1": true,
"user2": true
}
}
},
"users": {
"user1": {
"name": "Mr. T",
"email": "t@t.com"
},
"user2": {
"name": "Mr. Hello World",
"email": "hello@world.com"
}
}
我(我想我)知道如何使用 Firebase.util (http://firebase.github.io/firebase-util) 获取该主题的所有帖子:
Firebase.util.intersection(
fb.child('topics').child('topic1').child('posts'),
fb.child('posts')
)
但现在我希望每个帖子都包含喜欢该帖子的用户的姓名。如何做到这一点?
可能不会改变任何东西,但这一切都发生在 AngularFire 中。
【问题讨论】:
-
你没有问你想查询什么。是否所有帖子都被一位用户喜欢?还是所有喜欢某个主题的帖子的用户?
-
抱歉不清楚。在这种情况下,我想查看所有喜欢帖子的用户的姓名。因此,如果您正在查看帖子/post2,我希望看到“T 先生和 Hello World 先生点赞!”
-
所以不要在喜欢中使用“true”作为值,你可以使用他的名字
-
很公平。我认为来自 SQL 背景,我对真正非规范化我的数据犹豫不决(而是遵循这里的建议 firebase.com/blog/2013-04-12-denormalizing-is-normal.html),但也许我应该硬着头皮在任何地方进行非规范化。感谢您查看此内容并分享您的想法。
标签: firebase firebase-realtime-database angularfire nosql