首页 > 解决方案 > 试图从 Ionic Angular 中的 Firebase 获取对象

问题描述

我正在尝试从对象中获取详细信息视图的信息。

我将数据存储为:

async createRecord() {
    const user = await this.fbauth.authState.pipe(first()).toPromise();
    const record = {};
    record['Name'] = this.roomName;
    record['Number'] = this.roomNumber;
    record['Description'] = this.roomDescription;
    record['User'] = { email: user.email };
    this.crudService.create_NewRoom(record).then(resp => {
      this.roomName = "";
      this.roomNumber = undefined;
      this.roomDescription = "";
      this.roomUser = toString();
      console.log(resp);
      this.router.navigate(['rooms']);
    })
      .catch(error => {
        console.log(error);
      });
  }

服务.ts

read_Room(id) {
    return this.firestore.doc('Rooms/' + id);
  }

create_NewRoom(record) {
    return this.firestore.collection('Rooms').add(record);
  }

room.page.ts:

roomView(record) {
    const navigationExtras: NavigationExtras = {
      queryParams:{
        info: this.crudService.read_Room(record)
      }
    }
    this.router.navigate(["roomview"], navigationExtras);
  }
}

roomview.page.ts:

constructor(private route: ActivatedRoute, private router: Router) { 
      this.route.queryParams.subscribe(params => {
          if (params && params.info) {
            this.data = params.info;
          }
          console.log(params);
      });
  }

roomview.page.html

<ion-card-title>
   {{ data }}
</ion-card-title>

并返回我只得到:

{info: "[object Object]"} info: "[object Object]" 原型:对象

但我希望看到我在该对象中拥有的数据,例如姓名和号码。任何帮助,将不胜感激!

标签: angulartypescriptionic-framework

解决方案


假设你@angular/fire在你的 read_Room(id) 方法中使用尝试实现这样的东西,它实际上会从 firestore 中提取一些东西:

read_Room(id) {
  this.firestore.collection('Rooms').doc(id).ref.get().then(r => {
    return r.data();
  });
}

https://firebase.google.com/docs/firestore/query-data/get-data这可能是您正在寻找的指南。


推荐阅读