我有以下 Firebase 结构:
面包店列表:
firebaseio.com/bakery/:id/stuffAboutTheBakery
还有面包师名单:
firebaseio.com/baker/:id/bakery/bakeryId
面包师可以向多家面包店提供面包,因此在面包师详细信息中,我有一个对象,该对象列出了他们使用面包店 ID 作为键和 true 值提供的所有面包店。
在我的应用程序中,我有一个带有面包师的 $firebaseObject
。我想获得一个包含他们服务的面包店详细信息的数组。显然我可以直接到达每个终点,但肯定有更好的方法。所以我的问题是:
- 这个数据结构是文档中所说的扁平结构吗?或者有更好的方法来构建它吗?
- 如何将多个特定面包店查询到数组中?
这是我当前的代码:
self.baker = $firebaseObject(firebase.baker.child($stateParams.id));
self.baker.$loaded()
.then(function() {
self.bakeries = [];
for (var bakery in self.baker.bakeries) {
self.bakeries.push($firebaseObject(firebase.bakery.child(bakery)));
}
})
.catch(function(err) {
console.error(err);
});
最佳答案
这里是 Firebase 团队成员。
回答您的问题:
1 - 这正是文档中所说的扁平结构的含义!如果将 bakery
数据放在 baker
下方,那么就不平坦了。我们建议将两者分开。
2 - 由于您有一个存储面包师的面包店 ID 的对象,因此您可以获得该面包师的所有面包店。您可以同步该对象,然后对于每个面包店,您可以根据给定的 id 创建一个数组。但要小心,不要下载太多数据,因为这会使您的应用程序变慢。
我answered a similar question最近关于客户
和发票
。这应该会向您展示足够的代码来开始您的工作。
关于javascript - 使用 Angularfire 从 Firebase 获取特定键的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33696089/