首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性“on”不存在于“Observable<DocumentSnapshot<DocumentData>>角火基”类型上

属性“on”不存在于“Observable<DocumentSnapshot<DocumentData>>角火基”类型上
EN

Stack Overflow用户
提问于 2020-11-14 14:53:12
回答 2查看 870关注 0票数 0

嗨,我正试图在firebase中得到一个文档,但是它给了我一个错误。

属性‘on’在“可观察”类型上不存在。

我跟踪了firebase https://firebase.google.com/docs/firestore/query-data/get-data上的文档

我的service.ts代码是

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';

@Injectable({
  providedIn: 'root'
})
export class ViewReportService {

 

     constructor(private firestore: AngularFirestore) { }
    
      getPassengerReport(myDocument) {
        const passengerRef = this.firestore.collection("newPassenger").doc(myDocument);
        const data = passengerRef.get().then(function (doc) {
          console.log("Cached document data:", doc.data());
        }).catch(function (error) {
          console.log("Error getting cached document:", error);
        });
        return data
      }

}

角分量码

代码语言:javascript
复制
    passengerData = this.service.getPassengerReport(passengerDocumentID);
    console.log(passengerData)
    }
EN

Stack Overflow用户

回答已采纳

发布于 2020-11-14 16:20:55

你需要考虑的是你在使用角度。角的最佳实践之一是使用Observable而不是承诺

让我们将函数转换为返回Obervable

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';

@Injectable({
  providedIn: 'root'
})
export class ViewReportService {
  constructor(private firestore: AngularFirestore) { }
  getPassengerReport = (myDocument) => 
    this.firestore.collection("newPassenger").doc(myDocument).get()
}

在上面,我们将getPassengerReport定义为一个函数,它使用ES6语法返回行ES6。

在组件文件中,可以拥有

代码语言:javascript
复制
 passengerData$ = this.service.getPassengerReport(passengerDocumentID);

在其中,您可以用

代码语言:javascript
复制
<ng-container *ngIf='passengerData$ | async as passengerData'>

  <!-- HTML CODE HERE -->

</ng-container>

我们使用异步管道订阅Observable

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64835149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档