我为我的Ionic应用程序使用Facebook身份验证,并且正在使用Firebase模块进行身份验证。我相信我已经正确设置了firebase模块,但是当我尝试登录时遇到了一个错误。我将指出登录方法在Web浏览器上测试时曾经工作过一次,并且此后已经生成以下错误。我已经尝试过在android模拟器上进行测试,因为混合了结果(buggy build)。这是我的代码。Facebook OAuth在Ionic中登录错误
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import firebase from 'firebase';
import { Facebook } from '@ionic-native/facebook';
//import { AngularFireModule } from 'angularfire2';
import { HomePage } from '../home/home';
/**
* Generated class for the LoginPage page.
*
* See http://ionicframework.com/docs/components/#navigation for more info
* on Ionic pages and navigation.
*/
@IonicPage()
@Component({
selector: 'page-login',
templateUrl: 'login.html',
})
export class LoginPage {
homePage = HomePage;
constructor(public navCtrl: NavController, public navParams: NavParams, public facebook: Facebook) {
}
login2(){
//this.navCtrl.setRoot(this.homePage);
let provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithRedirect(provider).then(() => {
firebase.auth().getRedirectResult().then((result) => {
console.log(JSON.stringify(result))
this.navCtrl.push(this.homePage)
})
}).catch(function(error){
console.log(JSON.stringify(error));
});
}
}
模板基本上是与(点击)= 'Login2身份()' 按钮。 当我点击这个按钮,程序崩溃和重新加载错误:
遗漏的类型错误:无法读取性能在HTMLDocument.r空 的“数据集”(bundle.js:6112) R 7 bundle.js :6112
当我点击这个按钮,所以我知道它有事情做与我使用火力的方式这只发生。我想这可能是因为这些firebase方法需要cordova(因此如果我没有弄错,除非本地构建,否则无法工作),或者需要一些额外的设置(我确定firebase数据库已经存在)分配给监听器或app.module中的某个东西)。另一个理论是,因为它曾经工作过一次,它仍然认为它已经登录并因此而遇到一些奇怪的错误。提前致谢。
OK,要么这些方法在网页浏览器中运行时的工作(使用离子型服务)?根据我的理解,除非在本地设备上工作,否则cordova特定的内容不可用。如果不是,那么当没有本地运行时,我可以使用什么替代方法? –
如果你想在网络浏览器中做到这一点,那么这是你需要的一个:https://firebase.google.com/docs/auth/web/facebook-login – javebratt