获取单条记录数据 AngularFireDatabase

get single record data AngularFireDatabase

下面是我的截图数据库:

我想获得单门课程 - 通过 id, 这是我的代码:

服务:

 getSingle(uid: string) {
    return this.db
      .object(`courses/${uid}`)
      .snapshotChanges()
      .pipe(map(res => res.payload.val()));
  }

组件:

ngOnInit() {
    this.coursesService.getSingle('Kyric46r714Kibjqw2E').subscribe(item => {
      console.log(item);
    });

我得到 null - 在 console.log(item)

此外,如果我将服务更改为:

 getSingle(uid: string) {
    return this.db
      .object(`courses/${uid}`)
      .snapshotChanges()
      .pipe(map(res => res.payload.key)); < ------------
  }

我正在进入 console.log(item) 我的钥匙 - Kyric46r714Kibjqw2E,我应该这样做。

为什么 val() 方法不起作用?

提前感谢您的帮助!!!

您需要在 id 旁边添加破折号 - 以检索其中的数据:

this.coursesService.getSingle('-Kyric46r714Kibjqw2E').subscribe(item