我想搜索我的Firebase数据库,以便用户能够找到他们要搜索的产品。
当前,我正在将数据属性this.searchText与firebase中的product.title进行匹配。
return str.filter((product) => {
return product.title.match(textSearch)
})
我对此有疑问:
如果数据库包含1000种产品,那么在网站上过滤产品就没有意义,而是进行有效的查询,例如:
firebase.database.ref('products').containing('leather shoe')
我只是找不到适合的解决方案。
答案 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")
}
})