科尔多瓦在浏览器中不可用

nas*_*nas 3 cordova cordova-plugins ionic2 ionic3 angular

我刚开始学习 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);
Run Code Online (Sandbox Code Playgroud)

在 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)");
        })
    }

}
Run Code Online (Sandbox Code Playgroud)

seb*_*ras 6

在带有 ionic serve 的浏览器中运行应用程序时,Cordova 插件不可用。为了能够使用 Cordova 插件,您需要在模拟器/真实设备上运行该应用程序。

更新

我需要在 android 和浏览器上运行应用程序

我能想到的唯一方法是使用平台信息来检查应用程序是否在移动设备上运行 ( this.platform.is('cordova')),如果是,则使用 Cordova 插件。如果不是,您将需要像创建网站时所做的那样做一些事情,例如使用 Firebase 中的 REST api(因此,不使用 Cordova 插件)

我应该在哪里查看这个平台?

在调用任何 Cordova 插件相关方法之前。所以它可能在您的服务中,或在app.component.ts文件中。这只是决定是否需要使用基于 Cordova 插件的方法,或者是否需要执行使用 Web 服务的方法。