Estoy haciendo una aplicación web con vuejs y firebase. Obtuve una pila usando el filtro de una matriz para 'empujar' en una tabla de datos.

Creo que sigo correctamente las instrucciones de cómo usar el método filter (), pero no funciona

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)    

  })
 }
} 

Cuando hago el 'empujar' sin el código de línea del método 'filtro' y uso 'doc.data ()', funciona y obtengo la matriz en mi 'tabla de datos'. Pero no pasa nada usando el 'filtro'.

0
llogaran 25 sep. 2019 a las 03:51

1 respuesta

La mejor respuesta

La razón es probablemente porque productosTot no es una matriz sino "solo" un objeto JavaScript (que no es una matriz), consulte https://firebase.google.com/docs/reference/js/firebase.firestore.QueryDocumentSnapshot.html#data

Simplemente verifique el valor de precio con un if, de la siguiente manera:

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

} 
1
Renaud Tarnec 25 sep. 2019 a las 13:59