我跟随"非正规化" @Anant在Firebase blog上很好地描述了数据模式。要查询和呈现子对象,他建议在父级上侦听child_added
个事件以获取子ID,然后使用.once('value', fnc)
单独查询这些子级以呈现它们。从博客文章(他使用发布的链接作为父母和评论作为孩子 - 想想Reddit或黑客新闻):
var commentsRef =
new Firebase("https://awesome.firebaseio-demo.com/comments");
var linkRef =
new Firebase("https://awesome.firebaseio-demo.com/links");
var linkCommentsRef = linkRef.child(LINK_ID);
linkCommentsRef.on("child_added", function(snap) {
commentsRef.child(snap.name()).once("value", function() {
// Render the comment on the link page.
));
});
[ SIC
我试图将此与我的AngularJS视图进行协调,因为将.once
的结果添加到$scope
数组中并使用ngRepeat
将为您提供静态列表(如果孩子被其他客户更改或删除,他们不会实时更新。
换句话说,我希望像angularFireCollection
个子对象一样动态添加,删除和更新。
答案 0 :(得分:1)
我认为您正在寻找的是AngularFire和FirebaseIndex的组合。我没有检查过将这些结合起来仍然有效,但Kato reports it has in the past。
虽然忽略了这一点,但我认为您提出的计划没有任何问题:
将
.once
的结果推送到数组中,将其添加到$scope
并使用ngRepeat
在这种情况下,加藤的FirebaseIndex可能仍然有用,所以一定要检查出来。