angular - 离子角+电容器+火力。使用新的 Capacitor 3 和 Firebase 9 帮助迁移 Google 登录代码
问题描述
我希望有人可以帮助我如何使这个旧的firebase google登录代码在新的电容器3和firebase 9中工作。身份验证导入不再起作用。
这是我的 auth.service.ts 中的代码:
import {
Injectable
} from '@angular/core';
import {
AngularFireAuth
} from '@angular/fire/compat/auth';
import {
AngularFirestore,
AngularFirestoreDocument
} from '@angular/fire/compat/firestore';
import '@codetrix-studio/capacitor-google-auth';
import {
Plugins
} from '@capacitor/core';
import {
auth
} from 'firebase/app';
import 'firebase/auth';
export class AuthService {
constructor(private afAuth: AngularFireAuth, private afs:
AngularFirestore) {}
async googleSignup() {
const googleUser = await Plugins.GoogleAuth.signIn(null) as any;
const credential = auth.GoogleAuthProvider.credential(
googleUser.authentication.idToken);
const afUser = await this.afAuth.signInWithCredential(credential);
return this.updateUserData(
afUser.user,
googleUser.givenName,
googleUser.imageUrl
);
}
这里是我的 Introduction.page.ts 代码,其中 auth.service.ts 被调用:
import {
AuthService
} from '../../services/auth.service';
import {
Router
} from '@angular/router';
export class IntroductionPage implements OnInit {
constructor(
private auth: AuthService,
private router: Router
) {}
openGoogleSignup() {
this.auth.googleSignup().then((res) => {
this.router.navigateByUrl('/app');
}, err => {
// Canceled the sign up
});
}
}
我已经为 GoogleAuth 尝试了下面的新导入方法,但我无法跟进旧代码中的凭据。我收到错误“未处理的承诺拒绝:无法读取未定义的属性(读取'getAuthInstance')”
import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';
感谢您花时间阅读本文,我希望有人可以指导我使用这种新方法。今天是个好日子。
解决方案
对于所有将来可能遇到类似问题的人。感谢mr.grimm,我设法找到了解决方案。进口应该是这样的:
import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';
import firebase from 'firebase/compat/app';
调用谷歌登录的方法是这样的:
async googleSignup() {
await GoogleAuth.init();
const googleUser = await GoogleAuth.signIn();
const credential = firebase.auth.GoogleAuthProvider.credential();
}
推荐阅读
- python - 如何在满足一定条件时跳出当前的while循环并运行下一个循环?
- xaml - 自定义控件的可绑定属性未更新 - Xamarin Forms
- java - Eclipse:将 Maven 配置添加到快速链接
- marklogic - ML Data Hub 教程中的代码示例链接损坏
- c# - 我如何验证列表是否
是空的? - javascript - 从 Firestore 获取数据
- python - 将 TFDS 数据集转换为 tensorflow.examples.tutorials.mnist
- apache - 解决 No matching DirectoryIndex without added index
- kubernetes - GKE 和 EKS 之间的对等连接
- reactjs - 在 Jest 中测试调用 Promises 的嵌套函数