简体   繁体   English

例外:在ionic 2应用程序中用Facebook登录后,未捕获(承诺)

[英]Exception: uncaught (in promise) after login with facebook in ionic 2 app

I get this error 我得到这个错误

Exception: uncaught (in promise) :false 异常:未捕获(承诺):false

after login with Facebook in my ionic 2 app. 在我的ionic 2应用程序中使用Facebook登录后。 the connected succeed but i get this error. 连接成功,但我收到此错误。 在此处输入图片说明

my app.component.ts 我的app.component.ts

   import { Component,ViewChild } from '@angular/core';
import { Platform,Nav, LoadingController} from 'ionic-angular';
import { StatusBar, Splashscreen } from 'ionic-native';

//import pages
import { HomePage } from '../pages/home/home';
import { LoginPage } from '../pages/login/login';
import { SignupPage } from '../pages/signup/signup';
import { TabsPage } from '../pages/tabs/tabs';
import { AboutPage } from '../pages/about/about';
import {StudentsPage} from '../pages/students/students';



//import plugins
//import firebase from 'firebase';
import {AngularFire, FirebaseListObservable} from 'angularfire2';

@Component({
  template: `<ion-nav [root]="rootPage"></ion-nav>`
})
export class MyApp {
  @ViewChild(Nav) nav: Nav;
   public rootPage:any;
   //ref firebase
  public semesters:any;
  public userProfile: any;
  //user variables
  public currentUser: any;
  public id_user:any;
  public reg_boolean:any="true";
  public department:any;
  public year:any;
  public semester:any;
  public semesterdetails:any;
 user = {};

  constructor(platform: Platform, public loadingCtrl: LoadingController,public af: AngularFire){
   this.af.auth.subscribe(user => {
      if(user) {
        this.rootPage = SignupPage;
        console.log("connected success");

      }
      else {
        // user not logged in
        this.user = {};
        this.rootPage=LoginPage;

      }
    });

  }
}

my login.ts 我的login.ts

 import { Component } from '@angular/core';
import {NavController,LoadingController,AlertController } from 'ionic-angular';

//import pagess

import { HomePage } from '../home/home';
//import cordova plugins
import { Facebook } from 'ionic-native';
import firebase from 'firebase';
/*
  Generated class for the LoginPage page.

  See http://ionicframework.com/docs/v2/components/#navigation for more info on
  Ionic pages and navigation.
*/
@Component({
  selector: 'page-login',
  templateUrl: 'login.html'
})
export class LoginPage {
  userProfile: any = null;
  loading: any;
 constructor(public nav: NavController, public alertCtrl: AlertController,  public loadingCtrl: LoadingController) {}
  ionViewDidLoad() {

  }
   facebookLogin(){
    Facebook.login(['email']).then( (response) => {
      let facebookCredential = firebase.auth.FacebookAuthProvider.credential(response.authResponse.accessToken);
      var that = this;
      firebase.auth().signInWithCredential(facebookCredential)
          .then((success) => {
            console.log("Firebase success: " + JSON.stringify(success));
            that.userProfile = success;
            console.log(that.userProfile);
           // that.nav.setRoot(HomePage); // after login in it goes to homepage

          })
          .catch((error) => {
            console.log("Firebase failure: " + JSON.stringify(error));
          });

    }).catch((error) => { console.log(error) });
    let loader = this.loadingCtrl.create({
      dismissOnPageChange: true,
    });

    loader.present();
  }

  GmailLogin(){

  }

}

I try to check what is my problem but i didn't find any problem. 我尝试检查我的问题是什么,但没有发现任何问题。 i check also with android emulator and still same problem. 我也用android模拟器检查,仍然是同样的问题。

This is due to a bug in ionic-2 rc4 . 这是由于ionic-2 rc4的错误所致。 Happens when dismissOnPageChange: true is set. 设置dismissOnPageChange: true时发生。 Check out this issue . 看看这个问题 This has been fixed in rc5 so check it out. 该问题已在rc5rc5 ,请检查一下。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM