我刚刚开始学习 ionic 框架并尝试使用 firebase 实现 Facebook 登录。我正在浏览器中运行此应用程序,并且我有以下代码,这给了我“cordova_not_available”错误。谁能帮助我了解我的尝试出了什么问题。
谢谢。
app.module.js 内部
import {Facebook} from '@ionic-native/facebook';
import firebase from 'firebase';
export const firebaseConfig = {
....
....
};
firebase.initializeApp(firebaseConfig);
home.ts 内部
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import {Facebook} from '@ionic-native/facebook';
import firebase from 'firebase';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController, public facebook: Facebook) {
}
fblogin() {
var me = this;
me.facebook.login(['email']).then(res=>{
const fc = firebase.auth.FacebookAuthProvider.credential(res.authResponse.accessToken);
firebase.auth().signInWithCredential(fc).then(fs => {
alert("Firebase sec");
}).catch(ferr => {
alert("error");
})
}).catch(err=>{
console.log("JSON.stringify(err)");
})
}
}
最佳答案
使用 ionicserve 在浏览器中运行应用程序时,Cordova 插件不可用。为了能够使用 Cordova 插件,您需要在模拟器/真实设备上运行该应用程序。
更新
I need to run app on android and browser
我能想到的唯一方法是使用平台信息来检查应用程序是否在移动设备上运行(this.platform.is('cordova')
)以及是否是,使用 Cordova 插件。如果不是,您需要像创建网站时一样执行操作,例如使用 Firebase 中的 REST api(因此不使用 Cordova 插件)
Where should I check this platform?
在调用任何 Cordova 插件相关方法之前。因此它可能位于您的服务中,或者位于 app.component.ts
文件中。只是决定是否需要使用基于 Cordova 插件的方法,或者是否需要执行使用 Web 服务的方法。
关于angular - Cordova 在浏览器中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450968/