有没有一种方法可以搜索实时数据库中的特定子值并提取其附带的其余子数据

时间:2019-01-10 21:00:20

标签: javascript database firebase firebase-realtime-database

您好,有一种方法可以从实时数据库中提取一个值,在寻求该值后,它会提取与该搜索相关的所有数据,例如

我正在使用这种方法提取整个子数据。

  const query = dataFirebase.ref("Item").orderByKey();
    query.once("value")
    .then(function(snapshot) {
      snapshot.forEach(function(childSnapshot) {
        const keyValue = childSnapshot.key;
        const fullData = childSnapshot.val();

        console.log(fullData)
    });
  });

Item的数据看起来像

    {
      Item: {
        IDNumber1: {
          productDepartment: Cullinary,
          productStore: JCPenny
        }
        IDNumber2: {
          productDepartment: Cullinary,
          productStore: Macys
        }
        IDNumber3: {
          productDepartment: Home,
          productStore: JCPenny
        }
        IDNumber4: {
          productDepartment: Ties,
          productStore: JCPenny
        }
        IDNumber5: {
          productDepartment: Cullinary,
          productStore: Macys
        }
        IDNumber6: {
          productDepartment: Cullinary,
          productStore: Dillards
        }
        IDNumber7: {
          productDepartment: Ties,
          productStore: JCPenny
        }
      }
    }

ID号只是一个唯一的标识符。

我正在尝试使用一个搜索栏来查找productDepartment的值,例如“ Culinary”,然后使所有适合该数据的组件都显示出来,例如productStore也会显示出来,以便我可以更具体地从中获取信息。

因此,如果我要搜索Cullinary,则会显示IDNumber 1 2 5和6。

谢谢

1 个答案:

答案 0 :(得分:1)

您要寻找的是orderByChild()equalTo()

const query = dataFirebase.ref("Item").orderByChild("productDepartment").equalTo("Culinary");
query.once("value")...

其余代码将保持不变。

有关此的更多信息,请参见Firebase documentation on querying the Realtime Database