繁体   English   中英

将 Firestore 文档 ID 推送到数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM