читать значения из документа firestore ionic - PullRequest
1 голос
/ 14 июля 2020

У меня есть служба, которая получает конкретный документ из firestore с помощью этого метода

getBidremains (userId: string) {return this.firestore.collection ('userProfile'). Do c (userId);

В классе typscript я вызываю этот метод в ngOnInit как this.userInfo = this.firestoreService.getBidremains (userid) .valueChanges (). Subscribe (data => console.log (data));

В консоли я вижу, что данные получены правильно, но когда я пытаюсь использовать this.userInfo.remainBids, он ничего не печатает. В консоли он отображается как undefined.

Но в файле html (после удаления .subscribe) я могу распечатать правильное значение из firebase, используя {{(userInfo | asyn c) ?. stayBids}} Может ли кто-нибудь помочь мне здесь, я не уверен, что я делаю неправильно. Я хочу получить документ и иметь возможность читать значения поля, содержащегося в документе.

Поля документа базы данных firestore просты, они содержат адрес электронной почты, имя и другие поля

Это служба firestore имя функции - getBidremains (userId: string)

Это класс машинописного текста, в котором выполняется вызов this.userInfo = this.firestoreService.getBidremains (userid) .valueChanges (). subscribe (data => console.log (данные));

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Переменная userinfo назначается переменной Subscription, которая не имеет свойства remainBids. Вам либо нужно назначить переменную внутри subscribe, например:

...subscribe(data => {this.userInfo = data})

, либо сделать вашу переменную userInfo Observable и назначить ее следующим образом:

this.userInfo = this.firestoreService.getBigremains(userid).valuechanges()
1 голос
/ 14 июля 2020

.subscribe() метод возвращает подписку

Если вам нужно this.userInfo.remainBids для получения оставшихся ставок, используйте его внутри метода подписки ()

this.userInfoSubscription = this.firestoreService.getBigremains(userid).valuechanges().subscribe(data => {
    this.userInfo = data;
});

Также не забудьте отказаться от подписки внутри ngOnDestroy.

...