如何将AngularFirestoreCollection的结果提取到数组中

问题描述 投票:0回答:2

我正在尝试开发的应用程序允许使用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();”到一个数组。

angular angularfire2 google-cloud-firestore
2个回答
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)
    });*/
});

0
投票

我发现这段代码做了我需要的

querySnapshot.forEach(function (doc) {
    let name = doc.data()['languageName']; 
    lang.push(name);
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.