Я реализовал вход в Google в своем приложении android с аутентификацией через firebase, следуя документации . Тем не менее, я все еще пытаюсь понять код и логику c за ним.
Итак, после того, как пользователь успешно вошел в систему с помощью своей учетной записи gmail, метод firebaseAuthWithGoogle вызывается с информацией об учетной записи, передаваемой в качестве аргумента:
firebaseAuthWithGoogle(account);
Вот его определение:
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
// We will put the data coming from the google account in MySQL database
Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mFirebaseAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mFirebaseAuth.getCurrentUser();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
}
// ...
}
});
}
}
Я пытался объяснить это себе согласно к документации :
После успешного входа в систему
GoogleSignInAccount account = task.getResult(ApiException.class);
firebaseAuthWithGoogle(account); // Calling firebaseAuthWithGoogle
получить идентификационный токен от объект GoogleSignInAccount , замените его на учетные данные Firebase ,
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
и выполните проверку подлинности с помощью Firebase
mFirebaseAuth.signInWithCredential(credential)
с использованием учетных данных Firebase .
Что мне не понятно 100% :
1. Почему я должен проходить аутентификацию с помощью Firebase, если пользователь уже вошел в систему?
2. Что Какую роль играет аутентификация Firebase, если пользователь уже вошел в систему?
3. Что означает вход в систему с использованием учетных данных Firebase, если пользователь уже вошел в систему?
Я знаю, что для некоторых из вас это может показаться тривиальным, но для меня весь процесс входа в систему довольно расплывчатый, особенно с аутентификацией Firebase.