请帮我从 firebase firestore 中检索数据并存储在变量中

时间:2021-04-01 02:51:07

标签: javascript firebase google-cloud-firestore

在 firestore 上给定一个名为“Colors”的集合,我想获取集合中每个文档(条目)的文档 ID,并将其添加到数组中。

我尝试了很多东西,但这就是我目前的尝试。

  getVocab(){
    var vocab = [];
    this.db.collection("Colors").get().then((snapshot) => {
      snapshot.docs.forEach((doc) => {
          var str = "";
          var currentID = str.concat(doc.id);
          vocab.push(currentID);
      });
      for (let i = 0; i < 12; i++) {
        console.log (vocab[i]);
      }
      return vocab;
    });
  }

  ngOnInit() {
    var vocab = this.getVocab();
    for (let i = 0; i < 12; i++) {
      console.log (vocab[0]);
    }
  }

每当我在最后一个 }); 之前的任何地方使用 getVocab() 函数中的 console.log 时,它都会起作用,即数组 vocab 包含我的 Colors 集合中所有文档的文档 ID。
但是,每当我尝试在 any 其他方法中使用返回的数组时,都会收到以下错误。

ERROR Error: Uncaught (in promise): TypeError: Cannot read property '0' of undefined
TypeError: Cannot read property '0' of undefined

显然,当我返回数组 vocab 时它是未定义的,即使它不是未定义的就在我返回它之前

我确定这是一些我不理解的 firebase 规则:(

0 个答案:

没有答案