如何按孩子的属性查询 Firebase?

Posted

技术标签:

【中文标题】如何按孩子的属性查询 Firebase?【英文标题】:How to query Firebase by attribute of a child? 【发布时间】:2017-06-04 11:16:56 【问题描述】:

架构:

我正在尝试按所有者过滤所有对象

为了得到一个具体的我这样做:

var refCompaniesById = firebase.database().ref('companies').child(id);

但在这种情况下,我想过滤所有

我试过了:

ref.child('companies').child().set("owner": id)

但我失败了。

【问题讨论】:

【参考方案1】:

这将通过 Firebase 数据库查询来完成:

var query = ref.child("companies").orderByChild("owner").equalTo(id);
query.on("child_added", function(snapshot) 
  console.log(snapshot.val());
);

Firebase Database documentation 涵盖了这一点以及更多内容,但我也推荐Firebase for SQL developers。

【讨论】:

谢谢,我正在阅读 angularfire 文档。 Firebase for sql 开发者很棒,我不知道 AngularFire 构建在 Firebase javascript SDK 之上。对于与将数据绑定到 AngularJS UI 没有直接关系的任何内容,请参阅 JavaScript SDK 文档。【参考方案2】:
firebase.database().ref('companies').orderByChild('owner').equalTo(id)
  .once('value')
  .then(snapshot => 
    const records = snapshot.val();
    console.log(`Companies whose owner id is $id: `, records);
  )
  .catch(error => console.log(error));

【讨论】:

以上是关于如何按孩子的属性查询 Firebase?的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一个孩子 Firebase 中按孩子订购

如何从孩子(firebase)查询所有孩子的值[重复]

Firebase:按儿童计数排序的查询

BigQuery/Firebase 查询事件,按用户属性排序

查询附近的位置

Swift 5 Firebase 按子/键查询