Angular Firebase如何按字段查找和检索数据

时间:2019-07-11 11:40:58

标签: javascript angular firebase firebase-realtime-database

我在firebase上的实时数据库上有以下结构的数据:

    {   "tests" : [ {
           "description" : "55",
           "number" : "11",
           "serie" : "0"   }, {
           "description" : "22",
           "number" : "13",
           "serie" : "0"   }, {
           "description" : "Test",
           "number" : "55",
           "serie" : "2"   
} ]

我想tro检索字段“ serie”等于“ 0”的所有数据。 我的服务组件中有一个方法可以检索所有测试数据,例如:

  getTests(){
    firebase.database().ref('/tests')
      .on('value',(data: DataSnapshot)=>{
        this.tests= data.val() ? data.val():[];
        this.emitTests;
      }
    );
  }

目前,我不知道如何仅检索serie等于0的数据。

1 个答案:

答案 0 :(得分:2)

您可以通过使用Firebase数据库查询来做到这一点:

firebase.database().ref('/tests')
  .orderByChild("serie").equalTo("0")
  .on('value',(data: DataSnapshot) => {
    data.forEach((child: DataSnapshot) => {
      console.log(child.key, child.val());
    });

您可以看到Firebase中的查询有两个步骤:

  1. 您可以根据子属性或其值键对数据进行排序。
  2. 然后您根据订购的内容过滤数据。

另请参阅ordering and filtering data上的Firebase文档。