我正在尝试开发的应用程序允许使用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();”到一个数组。
我想你可以尝试类似的东西:(未经测试。如果错误则评论)
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)
});*/
});
我发现这段代码做了我需要的
querySnapshot.forEach(function (doc) {
let name = doc.data()['languageName'];
lang.push(name);
});
});