javascript - 使用 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'时,它可以工作并且我在我的'数据表'中获取数组。但是使用“过滤器”并没有发生任何事情。
解决方案
原因很可能是因为productosTot
不是数组,而是“只是”一个 JavaScript 对象(不是数组),请参阅https://firebase.google.com/docs/reference/js/firebase.firestore.QueryDocumentSnapshot.html#数据
只需检查precio
with 的值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)
})
}
}
推荐阅读
- docker - 无法调试在 docker 容器中运行的 TestCafe 浏览器
- android - 打开时软键盘在顶部添加空间
- python - 如何将 timedelta 与 pandas df.query() 一起使用?
- angular - Angular:路由重定向问题
- python - 如何在python中一次读取和写入同一个文件
- intellij-idea - Intellij IDEA - 尽管设置了新选项卡,但最终没有打开
- java - 为什么 long 类型的变量在转换之后和在以下代码中转换之前给出不同的答案,因为两者都是 long 类型?
- azure-active-directory - Azure AD:创建具有额外身份的用户
- php - MySQL:如何删除特定用户ID的所有旧记录但保留最新的3条?
- javascript - React中如何指定子组件拖动其父组件?