在离子中过滤firebase中的数据

时间:2017-07-19 13:20:52

标签: firebase firebase-realtime-database ionic2

我对firebase还很陌生,我需要指导如何过滤firebase的离子数据。目前,我正在尝试让用户在用户密钥的位置“应用”#39;是的,数据被调用。到目前为止,网上有答案说使用orderByChild语句(https://firebase.google.com/docs/reference/js/firebase.database.Query),但我不确定是否可以在这种情况下应用。

2 个答案:

答案 0 :(得分:2)

您可以使用firebase数据库orderByChildequalTo方法。

来自firebase参考的OrderByChild:

  

orderByChild   orderByChild(path)返回firebase.database.Query

     

它生成一个由指定子键排序的新Query对象。

     

查询一次只能按一个键排序。在同一个查询上多次调用orderByChild()是一个错误。

来自firebase参考的

equalTo:

  

equalTo(value,key)返回firebase.database.Query

     

创建一个包含与指定值匹配的子项的查询。

     

使用startAt(),endAt()和equalTo()允许我们为查询选择任意的起点和终点。

     

可选的key参数可用于进一步限制查询的范围。如果已指定,则具有完全指定值的子项还必须具有指定的键作为其键名。这可以用于过滤具有相同值的多个匹配的结果集。

     

Firebase查询允许您随时通过任何子密钥订购数据。但是,如果您事先知道索引是什么,则可以通过安全规则中的.indexOn规则来定义它们,以获得更好的性能。

您的问题代码:

const requestRef = firebase.database().ref('request');
requestRef.orderByChild('apply')
          .equalTo(true)
          .once('value')
          .then(snapshot => snapshot.val())
          .then((data) => {// your handle code here})

完整文档here

答案 1 :(得分:1)

是的,你也可以在你的情况下使用OrderByChild。这应该有用。

var query = firebase.database().ref('request').orderByChild('apply').equalTo('true');
query.once('value', function (snapshot) {
    console.log(snapshot.val()) //contains all users that has apply as true
})