Когда используется this.afAuth.auth.signInWithCredential, все отлично работает в моем приложении Ionic.Я могу войти, используя аутентификацию Google, и профиль пользователя выдвигается в базу данных.Тем не менее я получаю сообщение об ошибке в консоли, что signInWithCredential устарела и использовать signInAndRetrieveDataWithCredential.Проблема в том, что signInAndRetrieveDataWithCredential не предоставляет никаких пользовательских данных (uid, электронная почта пользователя, отображаемое имя) ... все это равно нулю.
Так что я могу сделать?В консольной ошибке говорится, что не следует использовать signInWithCredential, даже если он работает.signInAndRetrieveDataWithCredential возвращает значение NULL для пользователя.
async googleLogin(): Promise<void> {
try {
const gplusUser = await this.gplus.login({
'webClientId': environment.googleWebClientId,
'offline': true,
'scopes': 'profile email'
});
return await this.afAuth.auth.signInWithCredential(
firebase.auth.GoogleAuthProvider.credential(gplusUser.idToken)
).then((credential) => {
console.log('creds', credential);
this.updateUserData(credential);
});
} catch (err) {
console.log(err);
}
}
private updateUserData(user) {
const userRef: firebase.firestore.DocumentReference = firebase.firestore().doc(`users/${user.uid}`);
const data: User = {
uid: user.uid,
email: user.email,
displayName: user.displayName,
};
console.log('user data', data);
return userRef.set(data);
}