Ошибки приложения Ionic Angular Capacitor Firebase
используя @codetrix-studio/capacitor-google-auth, предлагаемый код:
Plugins.GoogleAuth.signIn();
async googleSignIn() {
let googleUser = await Plugins.GoogleAuth.signIn();
const credential = auth.GoogleAuthProvider.credential(googleUser.authentication.idToken);
return this.afAuth.auth.signInAndRetrieveDataWithCredential(credential);
}
Сообщение об ошибке: свойство «auth» не существует для типа AngularFireAuth Я могу заставить его работать с регистрацией по электронной почте, но не с Google. спасибо за любые идеи!
Кажется, это работает:
В auth.service.ts: Импорт
import { AngularFireAuth } from @angular/fire/auth';
import '@codetrix-studio/capacitor-google-auth';
import { Plugins } from '@capacitor/core';
import 'firebase/auth';
import firebase from 'firebase/app';
GoogleВход:
async googleSignIn() {
const googleUser = await
Plugins.GoogleAuth.signIn();
const credential = firebase.auth.GoogleAuthProvider.credential(googleUser.authentication.idToken);
return this.afAuth.signInAndRetrieveDataWithCredential(credential);
}
Оно работает! Просто измените signInAndRetrieveDataWithCredential() на signInWithCredential(), потому что первый устарел.
Вам нужно импортировать некоторые библиотеки, чтобы его можно было распознать. Убедитесь, что вы установили все необходимые библиотеки firebase для angular, такие как angularfire и firebase.
У меня этот код работает.
//first import AngularFireAuth
import {AngularFireAuth} from "@angular/fire/auth"
//then import firebase
import firebase from 'firebase/app';
//define auth variable of AngularFireAuth in constructor
constructor(private auth: AngularFireAuth) {}
async googleSignIn() {
let googleUser = await Plugins.GoogleAuth.signIn();
//use imported firebase to get user credential from google
const credential = firebase.auth.GoogleAuthProvider.credential(googleUser.authentication.idToken);
//Then use auth variable of AngularFireAuth to sign user using firebase authentication
return this.auth.signInWithCredential(credential);
//If you want to get user signed user details you can do this
return this.auth.signInWithCredential(credential).then((userCredential: firebase.auth.UserCredential)=>{
//userCredential object contains all details of the signed user.
console.info(userCredential)
});
}
Вы также можете импортировать «auth» следующим образом: import { auth } from «firebase/app»; тогда вы можете использовать: исходный код: const credential = auth.GoogleAuthProvider.credential(googleUser.authentication.idToken);