javascript - 使用 Angularfire 从 Firebase 获取特定键的数组

标签 javascript angularjs firebase angularfire

我有以下 Firebase 结构:

面包店列表:

firebaseio.com/bakery/:id/stuffAboutTheBakery

还有面包师名单:

firebaseio.com/baker/:id/bakery/bakeryId

面包师可以向多家面包店提供面包,因此在面包师详细信息中,我有一个对象,该对象列出了他们使用面包店 ID 作为键和 true 值提供的所有面包店。

在我的应用程序中,我有一个带有面包师的 $firebaseObject 。我想获得一个包含他们服务的面包店详细信息的数组。显然我可以直接到达每个终点,但肯定有更好的方法。所以我的问题是:

  1. 这个数据结构是文档中所说的扁平结构吗?或者有更好的方法来构建它吗?
  2. 如何将多个特定面包店查询到数组中?

这是我当前的代码:

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/

相关文章:

javascript - 根据推荐链接自动选择 Contact form 7 中的字段

javascript - 如何使用 JavaScript 从文件夹访问文件名

javascript - Angular 火 : undefined is not a function ($on method does not exist)

javascript - Webpack multiple 需要解析同一个文件但被导入两次

javascript - 在 firestore 中查找具有 id 的特定字段

swift - 将文档引用传递给第二个 View Controller

javascript - 数据绑定(bind)剑道 ui 网格与外部 API

javascript - 将字符串转换为 float javascript

javascript - 使用各种数组或对象项过滤 ng-repeat?

firebase - 如何更新 FirebaseRecyclerAdapter 查询