在 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 规则:(