首页 > 解决方案 > 使用 firebase 和 vuejs 过滤数组

问题描述

我正在用 vuejs 和 firebase 做一个 webapp。我使用过滤器将数组“推送”到数据表中。

我想我正确地遵循了如何使用 filter() 方法的说明,但是没有用

methods: {

 consulProds {
  let resultado = await db.collection('productos')
           .get()                

  resultado.docs.forEach(doc => {
          let productosTot = doc.data()

          let productosInd= productosTot.filter(producto=> 
                            producto.precio== 99)

           this.productosind.push(productosInd)    

  })
 }
} 

当我在没有'filter'方法的行代码并使用'doc.data()'的情况下执行'push'时,它可以工作并且我在我的'数据表'中获取数组。但是使用“过滤器”并没有发生任何事情。

标签: javascriptfirebasevue.jsgoogle-cloud-firestore

解决方案


原因很可能是因为productosTot不是数组,而是“只是”一个 JavaScript 对象(不是数组),请参阅https://firebase.google.com/docs/reference/js/firebase.firestore.QueryDocumentSnapshot.html#数据

只需检查preciowith 的值if,如下所示:

methods: {

 consulProds {
  let resultado = await db.collection('productos').get()                

  resultado.docs.forEach(doc => {
     let producto = doc.data()
     if (producto.precio == 99) this.productosind.push(producto)    
  })
 }

} 

推荐阅读