AngularFire2 orderByChild查询失败

时间:2019-02-04 05:06:16

标签: angular firebase ionic-framework firebase-realtime-database angularfire2

我认为我缺少有关Angularfire2查询的内容。我收到以下错误:

ERROR TypeError: db.list(...).orderByChild is not a function

这就是产生错误的原因:

this.itemsRef = db.list('projects/').orderByChild('buyerEmail').equalTo(user.email);

this.items = this.itemsRef.snapshotChanges().pipe(
  map(changes => 
    changes.map(c => ({ key: c.payload.key, ...c.payload.val() }))
  )
);

这,但是返回我要深入研究的列表:

this.itemsRef = db.list('projects/');

this.items = this.itemsRef.snapshotChanges().pipe(
  map(changes => 
    changes.map(c => ({ key: c.payload.key, ...c.payload.val() }))
  )
);

JSON:

 projects
    -LXpud3uxRaTHKIRa4Da
          ProjectName: "1234 sesame st."
          buyerEmail: "matt@theInternet.com"
    -LXpud3uxRaTHygr56aT
          ProjectName: "789 sesame st."
          buyerEmail: "joe@theInternet.com"

任何帮助将不胜感激。

编辑: 原来这是解决我的问题的错误方法。我最终保存了我想要的“键”,然后使用它来查找对象。在这种情况下,无需查询列表。

1 个答案:

答案 0 :(得分:0)

对于list,以下方法可能有效。

this.itemsRef = db.list(path , {
  query: {
    orderByChild: 'buyerEmail',
    equalTo: user.email,
  }
 });