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

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

我收到这个错误

Exception: uncaught (in promise) :false

在我的 ionic 2 应用程序中使用 Facebook 登录后。 连接成功但我收到此错误。

我的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;

      }
    });

  }
}

我的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(){

  }

}

我尝试检查我的问题是什么,但我没有发现任何问题。我也检查了 android 模拟器,仍然是同样的问题。

这是由于 ionic-2 rc4 中的一个错误。设置 dismissOnPageChange: true 时发生。看看这个 issue 。这已在 rc5 中修复,请查看。