Разделите их.
const userRef: AngularFirestoreDocument = this.afs.doc(users/${user.uid});
userRef.valueChanges().subscribe(res=>{
if(res){
// work with data here
}
});
Я думаю, что вы хотите вывести пользователя из метода без подписки, но я не уверен, что следую за вами.
this.afs.doc(users/${user.uid}).valueChanges().pipe(
take(1)
).subscribe(data => {
// work with data here
});
Может быть, вам нужна функция, которая выполняет вызов и возвращает пользователя, не тратя время на подписку?
function returnUser():user {
this.afs.doc(users/${user.uid}).valueChanges().pipe(take(1)).subscribe(user => {
return user;
});
}
take(1)
будет ждать получения первого ответа, а затем отписаться. Нет заметного обслуживания здесь!