Должен ли он быть Promise или это может быть просто результат асинхронного c процесса, который присваивается некоторой переменной, как показано ниже.
// Add a new variable
userAvailable: Boolean = false;
// Fetch the status of that user and update the component property
isUserAvailable(userEmail: string): void {
this.firebase.list(this.USER_CHILD_ROOT)
.snapshotChanges()
.subscribe(list => {
this.userAvailable = list
.map(item => item.payload.key)
.some(element => element === userEmail)
});
}
Вам просто нужно вызвать вышеуказанный метод где-то установить значение на основе результата процесса.
Если вы действительно хотите, чтобы это было обещание, вы можете изменить его, используя .toPromise()
вместо подписки на Observable
async isUserAvailable(userEmail: string): Promise<boolean> {
return this.firebase.list(this.USER_CHILD_ROOT)
.snapshotChanges()
.pipe(
map(list => {
return list
.map(item => item.payload.key)
.some(element => element === userEmail)
});
).toPromise()
}