Uwierzytelnianie za pomocą Firebase za pomocą kont opartych na haśle na Androidzie
Za pomocą Firebase Authentication możesz zezwolić użytkownikom na uwierzytelnianie w Firebase za pomocą ich adresów e-mail i haseł oraz do zarządzania kontami opartymi na hasłach w aplikacji.
Na karcie Metoda logowania włącz metodę logowania Adres e-mail i hasło, a następnie kliknij Zapisz.
W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność z biblioteką Firebase Authentication na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie Firebase Android BoM.
dependencies{// Import the BoM for the Firebase platformimplementation(platform("com.google.firebase:firebase-bom:33.5.1"))// Add the dependency for the Firebase Authentication library// When using the BoM, you don't specify versions in Firebase library dependenciesimplementation("com.google.firebase:firebase-auth")}
Dzięki użyciu Firebase Android BoMaplikacja zawsze będzie używać zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie)
Dodaj zależności biblioteki Firebase bez używania pakietu BoM
Jeśli zdecydujesz się nie używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu wszystkie wersje będą ze sobą zgodne.
dependencies{// Add the dependency for the Firebase Authentication library// When NOT using the BoM, you must specify versions in Firebase library dependenciesimplementation("com.google.firebase:firebase-auth:23.1.0")}
Podczas inicjowania aktywności sprawdź, czy użytkownik jest obecnie zalogowany:
Kotlin+KTX
publicoverridefunonStart(){super.onStart()// Check if user is signed in (non-null) and update UI accordingly.valcurrentUser=auth.currentUserif(currentUser!=null){reload()}}
@OverridepublicvoidonStart(){super.onStart();// Check if user is signed in (non-null) and update UI accordingly.FirebaseUsercurrentUser=mAuth.getCurrentUser();if(currentUser!=null){reload();}}
Gdy nowy użytkownik rejestruje się za pomocą formularza rejestracyjnego w Twojej aplikacji, wykonaj wszystkie wymagane przez aplikację kroki weryfikacji konta, np. sprawdź, czy hasło do nowego konta jest wpisane prawidłowo i czy spełnia wymagania Twojej firmy.
Utwórz nowe konto, przekazując adres e-mail i hasło nowego użytkownika do funkcji createUserWithEmailAndPassword:
Kotlin+KTX
auth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(this){task->
if(task.isSuccessful){// Sign in success, update UI with the signed-in user's informationLog.d(TAG,"createUserWithEmail:success")valuser=auth.currentUserupdateUI(user)}else{// If sign in fails, display a message to the user.Log.w(TAG,"createUserWithEmail:failure",task.exception)Toast.makeText(baseContext,"Authentication failed.",Toast.LENGTH_SHORT,).show()updateUI(null)}}
mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(this,newOnCompleteListener<AuthResult>(){@OverridepublicvoidonComplete(@NonNullTask<AuthResult>task){if(task.isSuccessful()){// Sign in success, update UI with the signed-in user's informationLog.d(TAG,"createUserWithEmail:success");FirebaseUseruser=mAuth.getCurrentUser();updateUI(user);}else{// If sign in fails, display a message to the user.Log.w(TAG,"createUserWithEmail:failure",task.getException());Toast.makeText(EmailPasswordActivity.this,"Authentication failed.",Toast.LENGTH_SHORT).show();updateUI(null);}}});
Jeśli zostało utworzone nowe konto, użytkownik jest też zalogowany. W wywołaniu zwrotnym możesz użyć metody getCurrentUser, aby pobrać dane konta użytkownika.