Javascript 使用firebase和vuejs筛选阵列

Javascript 使用firebase和vuejs筛选阵列,javascript,firebase,vue.js,google-cloud-firestore,Javascript,Firebase,Vue.js,Google Cloud Firestore,我正在用vuejs和firebase做一个webapp。我使用过滤器将一个数组“推”到数据表中,得到了堆栈 我认为我正确地遵循了有关如何使用filter()方法的de指令,但它不起作用 methods: { consulProds { let resultado = await db.collection('productos') .get() resultado.docs.forEach(doc => {

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

我认为我正确地遵循了有关如何使用filter()方法的de指令,但它不起作用

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'时,它会工作,并且我会在我的'data table'中获取数组。但是使用“过滤器”不会发生任何事情。

原因很可能是因为
productosot
不是数组,而是“只是”一个JavaScript对象(不是数组),请参阅

只需使用
if
检查
precio
的值,如下所示:

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)    
  })
 }

} 

可能是因为没有等于99的
doc.data().precio
?是的。当我这样做时:“this.productosid.push(doc.data())”,去掉使用“filter”的行代码,数据就出来了。你能添加一些
doc.data()
吗,这样我们可以进一步帮助你?