我正在尝试开发的应用程序允许使用Material2 Select输入字段选择语言。可用语言保存在Firestore文档集中。我使用AngularFirestoreCollection来检索它们,但无法找到如何从结果中提取语言名称并将它们放入数组中。
我已经搜索了示例和教程,阅读并重新阅读了文档页面,并使用'* ngFor'找到了许多示例,但我找不到任何使用'map',我怀疑这是我需要使用的。
提前谢谢你。
languageid: string;
languageName: string;
languageCollection: AngularFirestoreCollection<any> = this.afs.collection('Countries/AU/cLanguage');
languagecollection = this.languageCollection.valueChanges();
languages: string[];
我想映射“languagecollection = this.languageCollection.valueChanges();”到阵列。
答案 0 :(得分:0)
我认为你可以尝试以下方法:(未经测试。如果错误则评论)
let languages: string[];
let collection = this.afs.collection('Countries/AU/cLanguage').valueChanges();
//if you want to Firebase's .once(), use take(1)
let storeTask = collection.subscribe((langs) => {
languages = langs;
//Or
/*Object.keys(langs).map(function(key, index) {
languages.push(langs[key].name)
});*/
});
答案 1 :(得分:0)
我发现这段代码完成了我需要的工作
querySnapshot.forEach(function (doc) {
let name = doc.data()['languageName'];
lang.push(name);
});
});