[英]Pushing Firestore document IDs to array
我对 Vuejs 和 Firestore 还很陌生,目前正在从事我的第一个更大的项目。 我的 Firestore 中有 1 个集合,其中包含 3 个文档。 我正在尝试检索文档 ID 并将它们保存到数组中。 我的组件如下所示:
<template>
<div class="main">
<button @click="getIds" class="nextBtn">Next</button>
</div>
</template>
<script>
import { computed } from 'vue';
import { useStore } from 'vuex'
export default {
setup() {
const store = useStore();
const questdb = computed(() => store.state.questdb);
let idArray = [];
function getIds() {
this.questdb.onSnapshot(function(doc) {
doc.forEach(doc => {
try{
this.idArray.push(doc.id);
}
catch(error) {
console.log("Error: ", error);
}
})
})
}
return {
store,
questdb,
idArray,
getIds
}
},
methods: {
}
}
</script>
我得到的错误如下:
TypeError: Cannot read property 'push' of undefined
当我只是console.log()
文档ID时,它工作正常。
我想问题是,这些数据不能简单地推入一个数组,或者我对如何从 Firestore 检索数据缺乏一些基本的了解。
在 idArray 之前不需要“this”,“this”不包含 idArray,因此结果为“未定义”。 用这种方法试试。
function getIds() {
this.questdb.onSnapshot(function(doc) {
doc.forEach(doc => {
try{
idArray.push(doc.id);
}
catch(error) {
console.log("Error: ", error);
}
})
})
}
查看 Vue 组合 API 文档以获取更多信息。 https://v3.vuejs.org/api/composition-api.html#setup
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.