Я новичок в Angular и Firestore.Я хочу получить данные о помещении из службы Firestore в компонент Typescript.Я пробовал разные решения, но не смог получить данные.
firestore.service.ts
import { Injectable } from '@angular/core';
import {
AngularFirestore,
AngularFirestoreDocument,
AngularFirestoreCollection
} from '@angular/fire/firestore';
import * as firebase from 'firebase';
import { Observable } from 'rxjs';
interface Room {
description: String;
price: Number;
type: String;
}
@Injectable()
export class FirestoreService {
room: Observable<Room>;
roomCollection: AngularFirestoreCollection<Room>;
constructor(
private afs: AngularFirestore
) {}
ngOnInit() {
this.roomCollection = this.afs.collection(`Room`);
}
public getRoom() {
return this.afs.collection<Room>(`Room`).valueChanges();
}
}
suites.component.ts
import { Component, OnInit, Inject } from '@angular/core';
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from
'@angular/material';
import { FirestoreService } from '../firestore.service';
@Component({
selector: 'app-suites',
templateUrl: './suites.component.html',
styleUrls: ['./suites.component.css'],
providers: [FirestoreService]
})
export class SuitesComponent implements OnInit {
roomList: any;
constructor(
// public database: DatabaseService,
// private afs: AngularFirestore,
public firestore: FirestoreService
) {
// this.data = this.afs.collection(`hotelsystem/main_database`).valueChanges();
// this.data = this.database.getBookingRoom();
this.roomList = this.firestore.room;
console.log(this.roomList);
}
ngOnInit() {}
getRoom() {
this.firestore.getRoom().then((data: any) => {
if (data) {
this.roomList = [];
console.log(data);
this.roomList = data; //if got data, then bind to table
}
});
}
display: boolean = false;
showDialog() {
this.display = true;
}
}
У меня естьПонятия не имею, как это сделать, я погуглил на смежные темы, но не смог понять или найти какой-либо пример.Очень нужна помощь от вас, ребята, и извините, если мой код действительно вызывает у вас головную боль.