firebase - IONIC 项目中未定义 SignInWithApple
问题描述
设想:
我正在尝试通过 Apple 和Firebase
我的 IONIC 4 应用程序添加标识。
所以我进行了安装:
npm i cordova-plugin-apple-login
ionic cordova plugin add cordova-plugin-apple-login
然后我在我的服务中添加:
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));
});
});
}
}
问题:
这是我在互联网上随处可见的方法,但它给了我错误:
SignInWithApple is not defined
我也试过这个:
设想:
ionic cordova plugin add cordova-plugin-sign-in-with-apple
npm i --save @ionic-native/sign-in-with-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);
}
}
}
问题:
Class not found
我在文档中找不到太多解释...
在这两个我都有一个我不明白的错误,保持的方法是什么以及如何纠正它?
一个主意 ?
谢谢
解决方案
推荐阅读
- java - Wildfly 上的 Multipart/form-data RESTEasy 错误
- php - php通过sftp发送文件到ipv6主机
- python - 从音品号、弦号和拾音器设置中查找低音吉他的音高
- angular - 带有 ref 过滤器的 AngularFireList 删除所有项目而不是过滤
- python - 根据开始时间和结束时间之间的差异生成行(分钟)
- reactjs - React Bootstrap - 在路线更改时关闭 NavDropdown
- java - Java Spring Hibernate JPA PostgreSQL 避免保存重复的行/记录
- asp.net-mvc - 当从 iframe 为 SSO azure B2C msal .net 生成令牌时,为什么 Request.IsAuthenticated 为假
- r - R,sf 包:缓冲区和点未显示在地图上
- c# - 我如何掷骰子并选择告诉你要掷多少次