如何使用Vue搜索过滤器Firebase

时间:2018-08-02 11:19:29

标签: javascript firebase vue.js vuefire

我想搜索我的Firebase数据库,以便用户能够找到他们要搜索的产品。

当前,我正在将数据属性this.searchText与firebase中的product.title进行匹配。

return str.filter((product) => {
    return product.title.match(textSearch)
})

我对此有疑问:

如果数据库包含1000种产品,那么在网站上过滤产品就没有意义,而是进行有效的查询,例如:

firebase.database.ref('products').containing('leather shoe')

我只是找不到适合的解决方案。

1 个答案:

答案 0 :(得分:0)

Firebase.database.ref('products')返回Reference,并且没有用于引用的containing()方法。

最相似的方法是equalTo(),详细说明here

如果拥有“皮革鞋”值的字段是“类型”字段,那么您将执行以下操作:

var ref = firebase.database().ref("products");
ref.orderByChild("type").equalTo("leather shoe").on("child_added", function(snapshot) {
  console.log(snapshot.key);
});

使用vuefire,您可以这样做:

var firebaseApp = firebase.initializeApp({ ... })
var db = firebaseApp.database()

var vm = new Vue({
  el: '#demo',
  firebase: 
    anArray: db.ref("products").orderByChild("type").equalTo("leather shoe")
  }
})