Кнопка выхода из системы не работает - PullRequest
1 голос
/ 02 октября 2019

Поэтому я использую функцию кнопки выхода из системы на странице вкладок, чтобы вернуться обратно на страницу входа. К сожалению, я не могу нажать кнопку «Выйти», когда пользователь уже вошел в систему и зарегистрировался

Я попробовал функцию авторизации, чтобы вернуться к входу в систему

tabs.page.ts

import {Component, OnInit, ViewChild} from '@angular/core';
import {UserService} from '../user.service';
import {AngularFireAuth} from '@angular/fire/auth';
import { Router} from '@angular/router'
import {AngularFirestore} from '@angular/fire/firestore'

@Component({
selector: 'app-tabs',
templateUrl: 'tabs.page.html',
styleUrls: ['tabs.page.scss'],
})
export class  TabsPage implements OnInit {
constructor(
public afAuth: AngularFireAuth,
public router: Router,
public afstore: AngularFirestore
 ) {}

ngOnInit()  {
}
 async logout() {
 try { 
 this.afAuth.auth.signOut();
this.router.navigate(['/loginPage']);
} catch (error) {
 console.log('Error', error);
}
}
}

tabs.page.html

 <ion-item>
 <ion-button ion-button color="danger"   (click)="logout()" full>signOut
</ion-button>
</ion-item>

1 Ответ

0 голосов
/ 04 октября 2019

Вам нужно поставить туда await, а также async.

async logout() {
  try { 
    // add await here:
    await this.afAuth.auth.signOut();
    this.router.navigate(['/loginPage']);
  } catch (error) {
    console.log('Error', error);
  }
}

. Или же вы можете сделать это со стилем письма .then():

return this.afAuth.auth.signOut().then(() => {
  this.router.navigate(['/loginPage']);
}).error((error) => {
  console.log('Error', error);
});

В противном случае маршрутизатор будет перенаправлен на следующую страницу, прежде чем signOut() сможет завершить работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...