ionic Framework 3 Firebase аутентификация Google - PullRequest
0 голосов
/ 17 сентября 2018

У меня возникли некоторые проблемы с аутентификацией Firebase, и мне нужна помощь.

Обычно для входа в Google+ я могу открыть браузер в приложении и выбрать профиль, в который я хочу войти. Однако кажется, что аутентификация на этом заканчивается, когда меня возвращают на мою исходную страницу. Я использовал *ngIf, чтобы изменить макет страницы входа в систему, когда я вернусь, но изменения не отображаются. У кого-нибудь есть идеи?

Мой код для HTML следующий:

<button block ion-button (click)="login('facebook')" *ngIf = "!provider.loggedin" item-left>
  <ion-icon name="logo-facebook"></ion-icon> &nbsp; &nbsp; Login With Facebook
</button>
<button block ion-button (click)="login('google')" *ngIf = "!provider.loggedin" item-left>
  <ion-icon name="logo-googleplus"></ion-icon> &nbsp; &nbsp; Login With Google
</button>
<ion-card *ngIf = "provider.loggedin">
  <img src="{{ provider.profilePicture }}"/>
  <ion-card-content>
    <ion-card-title>
      {{ provider.name }}
      </ion-card-title>
    <p style = "text-align: center">
      {{ provider.email }}
    </p>
  </ion-card-content>
</ion-card>

<button block ion-button (click)="FinalLogin()" *ngIf = "provider.loggedin" item-left>Please Enter!!</button>
<button block ion-button (click)="logout()" *ngIf = "provider.loggedin" item-left>Logout</button>

Код для home.ts выглядит следующим образом:

login(provider){
  let signInProvider = null;
  console.log("Help")
  switch(provider){
    case "facebook":
    signInProvider = new firebase.auth.FacebookAuthProvider()
    console.log("Help2")
    break;

    case "google":
    signInProvider = new firebase.auth.GoogleAuthProvider()
    console.log("helping me")
    break;

  } 

  console.log("help3")

  this.fire.auth.signInWithRedirect(signInProvider)
  .then ( () => {
    console.log("Help4")     
      this.fire.auth.getRedirectResult().then( res => {         

      console.log(res)
      console.log('from -Google--')

      this.provider.loggedin = true;
      this.provider.name = res.user.displayName;
      this.provider.name = res.user.email;
      this.provider.profilePicture = res.user.photoURL;
      this.ref.detectChanges();
      console.log(res)

      this.navCtrl.push(LoggedinPage);

      });
    })
  }

1 Ответ

0 голосов
/ 18 сентября 2018

Ваш звонок на this.fire.auth.signInWithRedirect(signInProvider может быть молчаливым, потому что вы не catch -из ошибок.

Попробуйте:

this.fire.auth.signInWithRedirect(signInProvider)
    .then(() => { /* existing code */ })
    .catch(error => console.error(error));

, чтобы исключить любую возможностьтихой неудачи.Затем устраните все ошибки, которые могут возникнуть в процессе входа, в зависимости от ситуации.

...