【问题标题】:ionic Framework 3 firebase google authenticationionic Framework 3 firebase google 身份验证
【发布时间】:2019-02-21 00:02:44
【问题描述】:

我在 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);

      });
    })
  }

【问题讨论】:

    标签: angular firebase ionic-framework firebase-authentication ionic3


    【解决方案1】:

    您对this.fire.auth.signInWithRedirect(signInProvider 的调用可能会静默失败,因为您没有catch 出现任何错误。

    试试这个:

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

    排除任何静默失败的可能性。然后,酌情解决登录过程中可能出现的任何错误。

    【讨论】:

    • 您好,感谢您的回复。我已经尝试并实施了您的更改,但无济于事。未显示任何更改。
    • 您好,感谢您的回复。我已经尝试并实施了您的更改,但无济于事。从控制台看不到任何变化?
    • 能否更新您问题中的代码,以便我查看?
    猜你喜欢
    • 2016-12-08
    • 2017-08-13
    • 1970-01-01
    • 2018-02-01
    • 2018-06-17
    • 2016-09-26
    • 2022-01-11
    • 2018-02-22
    • 2019-11-20
    相关资源
    最近更新 更多