Firebase IONIC项目中未定义带苹果的符号 脚本:

Firebase IONIC项目中未定义带苹果的符号 脚本:,firebase,ionic-framework,ionic4,Firebase,Ionic Framework,Ionic4,我正在尝试通过Apple和Firebase为我的IONIC 4应用程序添加标识 因此,我进行了安装: npm i cordova插件苹果登录 爱奥尼亚cordova插件添加cordova插件苹果登录 然后我在我的服务中添加: import {AngularFireAuth} from '@angular/fire/auth'; import {Facebook} from '@ionic-native/facebook/ngx'; import * as firebase from 'fireb

我正在尝试通过Apple和Firebase为我的IONIC 4应用程序添加标识

因此,我进行了安装:

npm i cordova插件苹果登录

爱奥尼亚cordova插件添加cordova插件苹果登录

然后我在我的服务中添加:

import {AngularFireAuth} from '@angular/fire/auth';
import {Facebook} from '@ionic-native/facebook/ngx';
import * as firebase from 'firebase';
import {GooglePlus} from '@ionic-native/google-plus/ngx';

declare var SignInWithApple: any;

export class AuthService {

  constructor(public fAuth: AngularFireAuth,
              public fb: Facebook,
              public google: GooglePlus) {}

    async loginApple() {

        SignInWithApple.request({requestedScopes: [ SignInWithApple.Scope.Email, SignInWithApple.Scope.FullName ]})
            .then((appleCredential) => {
                const credential =  new firebase.auth.OAuthProvider('apple.com').credential(appleCredential.identityToken);
                this.fAuth.auth.signInWithCredential(credential)
                    .then((response) => {
                        console.log('Login successful');
                    })
                    .catch((error) => {
                        console.log(error);
                        alert('error:' + JSON.stringify(error));
                    });
            });
    }


}

问题: 这是我在互联网上到处都能找到的方法,但它给了我一个错误:

未定义苹果的签名

我也试过:

脚本: 爱奥尼亚cordova插件添加cordova插件使用apple登录

import {AngularFireAuth} from '@angular/fire/auth';
import {Facebook} from '@ionic-native/facebook/ngx';
import * as firebase from 'firebase';
import {GooglePlus} from '@ionic-native/google-plus/ngx';
import { SignInWithApple,
    AppleSignInResponse,
    AppleSignInErrorResponse,
    ASAuthorizationAppleIDRequest } from '@ionic-native/sign-in-with-apple';

export class AuthService {

  constructor(public fAuth: AngularFireAuth,
              public fb: Facebook,
              public google: GooglePlus) {}

    async loginApple() {

            try {
                const appleCredential: AppleSignInResponse = await SignInWithApple.signin({
                    requestedScopes: [
                        ASAuthorizationAppleIDRequest.ASAuthorizationScopeFullName,
                        ASAuthorizationAppleIDRequest.ASAuthorizationScopeEmail
                    ]
                });
                const credential = new firebase.auth.OAuthProvider('apple.com').credential(
                    appleCredential.identityToken
                );
                this.fAuth.auth.signInWithCredential(credential)
                    .then((res) => {
                        console.log('Login successful', res);
                    })
                    .catch((error) => {
                        console.log(error);
                    });
            } catch (error) {
                console.log(error);
            }
    }
}

npm i--save@ionic native/使用apple登录

import {AngularFireAuth} from '@angular/fire/auth';
import {Facebook} from '@ionic-native/facebook/ngx';
import * as firebase from 'firebase';
import {GooglePlus} from '@ionic-native/google-plus/ngx';
import { SignInWithApple,
    AppleSignInResponse,
    AppleSignInErrorResponse,
    ASAuthorizationAppleIDRequest } from '@ionic-native/sign-in-with-apple';

export class AuthService {

  constructor(public fAuth: AngularFireAuth,
              public fb: Facebook,
              public google: GooglePlus) {}

    async loginApple() {

            try {
                const appleCredential: AppleSignInResponse = await SignInWithApple.signin({
                    requestedScopes: [
                        ASAuthorizationAppleIDRequest.ASAuthorizationScopeFullName,
                        ASAuthorizationAppleIDRequest.ASAuthorizationScopeEmail
                    ]
                });
                const credential = new firebase.auth.OAuthProvider('apple.com').credential(
                    appleCredential.identityToken
                );
                this.fAuth.auth.signInWithCredential(credential)
                    .then((res) => {
                        console.log('Login successful', res);
                    })
                    .catch((error) => {
                        console.log(error);
                    });
            } catch (error) {
                console.log(error);
            }
    }
}

问题: 我在文档中找不到太多解释

在这两种情况下,我都有一个我不理解的错误,保持错误的方法是什么,如何纠正错误

一个主意


谢谢你

你在设备上测试了吗?是的,我在安卓智能手机上测试了吗?是的,我在安卓智能手机上测试了