установить официальную библиотеку Firebase для угловых
npm установка firebase @ angular / fire --save
рефакторинг вашего getOrCreateCartId
метода для возврата наблюдаемого вместо обещания
и затем используйте это
getCart(): Observable<ShoppingCart> {
return this.getOrCreateCartId()
.pipe(
switchMap((cartId: string) => {
const cart = this.db.doc<ShoppingCart>('shopping-carts/' + cartId);
return cart.valueChanges();
})
)
}
в противном случае, если вы все еще хотите пообещать вернуться
async getCart(): Observable<ShoppingCart> {
const cardId = await this.getOrCreateCartId();
const cart = this.db.doc<ShoppingCart>('shopping-carts/' + cartId);
return cart.valueChanges().toPromise();
}
но знайте, что, поскольку вы toPromise
были использованы, вы
Обратите внимание , что вы можете преобразовать любой тип данных в наблюдаемые, используя from()