从firestore-document读取数据一次,并将结果用作变量

问题描述

对不起-我在理解Firebase / firestore的异步数据处理方面遇到一些问题。

我有一个云Firestore数据库。现在,我想从文档中获取一个值,以便在函数中使用该值进行进一步的计算。我需要一次该值,应用程序应在启动时检索该值。

我在firebase.service.ts中有这样的内容

...
constructor(private afs: AngularFirestore) {
    console.log(this.getVerein()); // testing the function getVerein
}
...

docRef: AngularFirestoreDocument<Verein>;
...  

getVerein(): string{
    this.docRef = this.afs.collection<Verein>('Verein').doc('Daten')
    this.docRef.valueChanges().subscribe( (d)=>{
      console.log(d.Name)
    })

    return ""
  }

结果正常,控制台显示正确的值,但是:

  1. 函数无法返回值“ d.Name”。在承诺之外无法访问(?)
  2. 函数必须等待,直到从数据库中检索到值为止(等待?,异步?) 到目前为止,我还没有找到一个很好的解释资源。

非常感谢您的支持

我的依赖项:

"dependencies": {
    "@angular/common": "~10.0.0","@angular/core": "~10.0.0","@angular/fire": "^6.0.4","@angular/forms": "~10.0.0","@angular/platform-browser": "~10.0.0","@angular/platform-browser-dynamic": "~10.0.0","@angular/router": "~10.0.0","@ionic-native/core": "^5.0.0","@ionic-native/splash-screen": "^5.0.0","@ionic-native/status-bar": "^5.0.0","@ionic/angular": "^5.0.0","firebase": "^8.0.0","rxjs": "~6.5.5","tslib": "^2.0.0","zone.js": "~0.10.3"
  },

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)