āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϤāĻžāĻĻā§āϰ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠Firebase āĻāϰ āϏāĻžāĻĨā§ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻāϰāϤ⧠āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠āĻāĻĒāύāĻŋ Firebase Authentication āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻĒāύāĻŋ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāĻā§
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āύāĻž āĻāϰ⧠āĻĨāĻžāĻā§āύ āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻžāϰ Android āĻĒā§āϰāĻāϞā§āĻĒā§ Firebase āϝā§āĻ āĻāϰā§āύ āĨ¤
- āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāύāĻ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒāĻāĻŋāĻā§ āĻāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āύāĻž āĻāϰ⧠āĻĨāĻžāĻā§āύ, āϤāĻžāĻšāϞ⧠Firebase āĻāύāϏā§āϞ āĻĨā§āĻā§ āϤāĻž āĻāϰā§āύ⧎
- āĻāĻŽā§āϞ/āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāĻžāĻāύ-āĻāύ āϏāĻā§āώāĻŽ āĻāϰā§āύ:
- Firebase āĻāύāϏā§āϞ⧠, Auth āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻā§āϞā§āύāĨ¤
- āϏāĻžāĻāύ āĻāύ āĻĒāĻĻā§āϧāϤāĻŋ āĻā§āϝāĻžāĻŦā§, āĻāĻŽā§āϞ/āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāĻžāĻāύ-āĻāύ āĻĒāĻĻā§āϧāϤāĻŋ āϏāĻā§āώāĻŽ āĻāϰā§āύ āĻāĻŦāĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻŽāĻĄāĻŋāĻāϞ⧠(āĻ ā§āϝāĻžāĻĒ-āϞā§āĻā§āϞ) āĻā§āϰā§āĻĄāϞ āĻĢāĻžāĻāϞ⧠(āϏāĻžāϧāĻžāϰāĻŖāϤ
<project>/<app-module>/build.gradle.kts
āĻŦāĻž<project>/<app-module>/build.gradle
), Android āĻāϰ āĻāύā§āϝ Firebase Authentication āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āĻāύā§āϝ āύāĻŋāϰā§āĻāϰāϤāĻž āϝā§āĻ āĻāϰā§āύāĨ¤ āĻāĻŽāϰāĻž āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϏāĻāϏā§āĻāϰāĻŖ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāϤ⧠Firebase Android BoM āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻāĨ¤dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.2.0")) // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth") }
Firebase Android BoM āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āϏāĻŦāϏāĻŽāϝāĻŧ Firebase Android āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āϏāĻāϏā§āĻāϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āĨ¤
(āĻŦāĻŋāĻāϞā§āĻĒ) BoM āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰ⧠Firebase āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āύāĻŋāϰā§āĻāϰāϤāĻž āϝā§āĻ āĻāϰā§āύ
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ Firebase BoM āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰāĻž āĻŦā§āĻā§ āύā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻžāĻā§ āĻ āĻŦāĻļā§āϝāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ Firebase āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϏāĻāϏā§āĻāϰāĻŖ āϤāĻžāϰ āύāĻŋāϰā§āĻāϰāϤāĻž āϞāĻžāĻāύ⧠āĻāϞā§āϞā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ āĻāĻāĻžāϧāĻŋāĻ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āĻāĻŽāϰāĻž āĻĻā§āĻĸāĻŧāĻāĻžāĻŦā§ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠BoM āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻ, āϝāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āϝ⧠āϏāĻŽāϏā§āϤ āϏāĻāϏā§āĻāϰāĻŖ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖāĨ¤
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth:24.0.1") }
āĻāĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āϤā§āϰāĻŋ āĻāϰā§āύ
āĻāĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāĻš āĻāĻāĻāĻŋ āύāϤā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āϤā§āϰāĻŋ āĻāϰāϤā§, āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āϏāĻžāĻāύ-āĻāύ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§āϞāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϰā§āύ:
- āĻāĻĒāύāĻžāϰ āϏāĻžāĻāύ-āĻāĻĒ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒā§āϰ
onCreate
āĻĒāĻĻā§āϧāϤāĻŋāϤā§,FirebaseAuth
āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻāĻžāĻ āĻāϰāĻž āĻāĻĻāĻžāĻšāϰāĻŖ āĻĒāĻžāύ:Kotlin
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- āĻāĻĒāύāĻžāϰ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒ āĻļā§āϰ⧠āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦāϰā§āϤāĻŽāĻžāύ⧠āϏāĻžāĻāύ āĻāύ āĻāϰā§āĻā§āύ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠āĻĻā§āĻā§āύ:
Kotlin
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser if (currentUser != null) { reload() } }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); if(currentUser != null){ reload(); } }
- āϝāĻāύ āĻāĻāĻāύ āύāϤā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āϏāĻžāĻāύ-āĻāĻĒ āĻĢāϰā§āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻžāĻāύ āĻāĻĒ āĻāϰā§āύ, āϤāĻāύ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϝā§āĻā§āύ āύāϤā§āύ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āϝāĻžāĻāĻžāĻāĻāϰāĻŖā§āϰ āϧāĻžāĻĒāĻā§āϞāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϰā§āύ, āϝā§āĻŽāύ āύāϤā§āύ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻāĻĒ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŋāύāĻž āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻāĻāĻŋāϞāϤāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻĒā§āϰāĻŖ āĻāϰ⧠āϤāĻž āϝāĻžāĻāĻžāĻ āĻāϰāĻžāĨ¤
-
createUserWithEmailAndPassword
āĻāϰāϤ⧠āύāϤā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĒāĻžāϏ āĻāϰ⧠āĻāĻāĻāĻŋ āύāϤā§āύ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āϤā§āϰāĻŋ āĻāϰā§āύ:āϝāĻĻāĻŋ āύāϤā§āύ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻ āϏāĻžāĻāύ āĻāύ āĻāϰā§āĻā§āύ⧎ āĻāϞāĻŦā§āϝāĻžāĻā§, āĻāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻĄā§āĻāĻž āĻĒā§āϤā§Kotlin
auth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "createUserWithEmail:success") val user = auth.currentUser updateUI(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) } }
Java
mAuth.createUserWithEmailAndPassword(email, password) .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, "createUserWithEmail:success"); FirebaseUser user = 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); } } });
getCurrentUser
āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ⧎
āĻāĻāĻāĻŋ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏāĻžāĻāύ āĻāύ āĻāϰā§āύ
āĻāĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏāĻžāĻāύ āĻāύ āĻāϰāĻžāϰ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§āϞāĻŋ āĻāĻāĻāĻŋ āύāϤā§āύ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āϤā§āϰāĻŋāϰ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§āϞāĻŋāϰ āĻ āύā§āϰā§āĻĒ⧎ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āϏāĻžāĻāύ-āĻāύ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒā§, āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤāĻā§āϞāĻŋ āĻāϰā§āύ:
- āĻāĻĒāύāĻžāϰ āϏāĻžāĻāύ-āĻāύ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒā§āϰ
onCreate
āĻĒāĻĻā§āϧāϤāĻŋāϤā§,FirebaseAuth
āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻāĻžāĻ āĻāϰāĻž āĻāĻĻāĻžāĻšāϰāĻŖ āĻĒāĻžāύ:Kotlin
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- āĻāĻĒāύāĻžāϰ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒ āĻļā§āϰ⧠āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦāϰā§āϤāĻŽāĻžāύ⧠āϏāĻžāĻāύ āĻāύ āĻāϰā§āĻā§āύ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠āĻĻā§āĻā§āύ:
Kotlin
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser if (currentUser != null) { reload() } }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); if(currentUser != null){ reload(); } }
- āϝāĻāύ āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒā§ āϏāĻžāĻāύ āĻāύ āĻāϰā§āύ, āϤāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻāĻŋāϝāĻŧā§
signInWithEmailAndPassword
āĻĒāĻžāϏ āĻāϰā§āύ:āϏāĻžāĻāύ-āĻāύ āϏāĻĢāϞ āĻšāϞā§, āĻāĻĒāύāĻŋ āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻĢāĻŋāϰ⧠āĻāϏāĻžKotlin
auth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithEmail:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.signInWithEmailAndPassword(email, password) .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, "signInWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
FirebaseUser
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻĒā§āϰāϏā§āϤāĻžāĻŦāĻŋāϤ: āĻāĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āύā§āϤāĻŋ āϏā§āĻ āĻāϰā§āύ
āĻāĻĒāύāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻāĻŋāϞāϤāĻž āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰ⧠āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻāύā§āύāϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āύā§āϤāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤā§, Firebase āĻāύāϏā§āϞā§āϰ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āϏā§āĻāĻŋāĻāϏ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āύā§āϤāĻŋ āĻā§āϝāĻžāĻŦāĻāĻŋ āĻā§āϞā§āύ:
āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āϏā§āĻāĻŋāĻāϏ
Firebase Authentication āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āύā§āϤāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āϏāĻŽāϰā§āĻĨāύ āĻāϰā§:
āĻā§āĻ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ
āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ
āϏāĻāĻā§āϝāĻžāϏā§āĻāĻ āĻ āĻā§āώāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ
āύāύ-āĻāϞāĻĢāĻžāύāĻŋāĻāĻŽā§āϰāĻŋāĻ āĻ āĻā§āώāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ
āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻ āĻā§āώāϰāĻā§āϞāĻŋ āĻ -āĻāϞāĻĢāĻžāύāĻŋāĻāĻŽā§āϰāĻŋāĻ āĻ āĻā§āώāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻĒā§āϰāĻŖ āĻāϰā§:
^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~
āύā§āϝā§āύāϤāĻŽ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻā§āϰā§āĻā§āϝ (6 āĻĨā§āĻā§ 30 āĻ āĻā§āώāϰ āĻĒāϰā§āϝāύā§āϤ; āĻĄāĻŋāĻĢāϞā§āĻ 6 āĻĒāϰā§āϝāύā§āϤ)
āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§āϰ āϏāϰā§āĻŦā§āĻā§āĻ āĻĻā§āϰā§āĻā§āϝ (āϏāϰā§āĻŦāĻžāϧāĻŋāĻ āĻĻā§āϰā§āĻā§āϝ 4096 āĻ āĻā§āώāϰ)
āĻāĻĒāύāĻŋ āĻĻā§āĻāĻŋ āĻŽā§āĻĄā§ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āύā§āϤāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āϏāĻā§āώāĻŽ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
āĻĒā§āϰāϝāĻŧā§āĻāύ : āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻĒāύāĻžāϰ āύā§āϤāĻŋ āĻŽā§āύ⧠āĻāϞāĻž āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻĒāĻĄā§āĻ āύāĻž āĻāϰāĻž āĻĒāϰā§āϝāύā§āϤ āϏāĻžāĻāύ āĻāĻĒ āĻāϰāĻžāϰ āĻĒā§āϰāĻā§āώā§āĻāĻž āĻŦā§āϝāϰā§āĻĨ āĻšāϝāĻŧāĨ¤
āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ : āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāĻāĻāĻŋ āĻ -āϏāĻā§āĻāϤ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻāĻŋāϝāĻŧā§ āϏāĻžāĻāύ āĻāĻĒ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧāĨ¤ āĻāĻ āĻŽā§āĻĄāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄāĻāĻŋ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻĒāĻā§āώā§āϰ āύā§āϤāĻŋāϰ āϏāĻžāĻĨā§ āϏāĻā§āĻāϤāĻŋāĻĒā§āϰā§āĻŖ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž āĻāĻāĻŋāϤ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āϤāĻžāĻĻā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻĒāĻĄā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻ āύā§āϰā§āϧ āĻāϰāĻž āĻāĻāĻŋāϤ āϝāĻĻāĻŋ āĻāĻāĻŋ āĻŽā§āύ⧠āύāĻž āĻāϞā§āĨ¤
āύāϤā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϏāϰā§āĻŦāĻĻāĻž āĻāĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāϝāĻŧāύ āĻāϰāϤ⧠āĻšāĻŦā§ āϝāĻž āĻāĻĒāύāĻžāϰ āύā§āϤāĻŋ āĻŽā§āύ⧠āĻāϞā§āĨ¤
āĻāĻĒāύāĻžāϰ āϝāĻĻāĻŋ āϏāĻā§āϰāĻŋāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻĨāĻžāĻā§, āĻāĻŽāϰāĻž āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻŋ āϏāĻžāĻāύ āĻāύ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻā§āϰ āĻāϰ⧠āĻāĻĒāĻā§āϰā§āĻĄ āϏāĻā§āώāĻŽ āύāĻž āĻāϰāĻž āϝāϤāĻā§āώāĻŖ āύāĻž āĻāĻĒāύāĻŋ āĻāĻŽāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻŦā§āϞāĻ āĻāϰāϤ⧠āĻāĻžāύ āϝāĻžāĻĻā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄāĻā§āϞāĻŋ āĻāĻĒāύāĻžāϰ āύā§āϤāĻŋ āĻŽā§āύ⧠āĻāϞ⧠āύāĻžā§ˇ āĻĒāϰāĻŋāĻŦāϰā§āϤā§, āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āĻŽā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϤāĻžāĻĻā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻāĻŋāϝāĻŧā§ āϏāĻžāĻāύ āĻāύ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§āϰ āĻ āĻāĻžāĻŦā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āϏāĻŽā§āĻĒāϰā§āĻā§ āϤāĻžāĻĻā§āϰ āĻ āĻŦāĻšāĻŋāϤ āĻāϰā§āĨ¤
āĻĒā§āϰāϏā§āϤāĻžāĻŦāĻŋāϤ: āĻāĻŽā§āϞ āĻāĻŖāύāĻž āϏā§āϰāĻā§āώāĻž āϏāĻā§āώāĻŽ āĻāϰā§āύ
āĻāĻŋāĻā§ Firebase Authentication āĻĒāĻĻā§āϧāϤāĻŋ āϝāĻž āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻžāĻā§āϞāĻŋāĻā§ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻšāĻŋāϏāĻžāĻŦā§ āĻā§āϰāĻšāĻŖ āĻāϰ⧠āϏā§āĻā§āϞāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϤā§āϰā§āĻāĻŋāĻā§āϞāĻŋ āĻĢā§āϞ⧠āϝāĻĻāĻŋ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻžāĻāĻŋ āύāĻŋāĻŦāύā§āϧāĻŋāϤ āύāĻž āĻĨāĻžāĻāĻž āĻ āĻŦāϏā§āĻĨāĻžāϝāĻŧ āĻĨāĻžāĻā§ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻāĻŋāϝāĻŧā§ āϏāĻžāĻāύ āĻāύ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ), āĻŦāĻž āϝāĻāύ āĻāĻāĻŋ āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ āϤāĻāύ āύāĻŋāĻŦāύā§āϧāĻŋāϤ āĻšāϝāĻŧ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ)āĨ¤ āϝāĻĻāĻŋāĻ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒā§āϰāϤāĻŋāĻāĻžāϰā§āϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āϏāĻšāĻžāϝāĻŧāĻ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻŦāύā§āϧāĻŋāϤ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻžāĻā§āϞāĻŋ āĻāĻŦāĻŋāώā§āĻāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĻā§āώāĻŋāϤ āĻ āĻāĻŋāύā§āϤāĻžāĻĻā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻ āĻĒāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻ āĻā§āĻāĻāĻŋ āĻāĻŽāĻžāϤā§, āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāĻā§ Google Cloud gcloud
āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāύā§āϝ āĻāĻŽā§āϞ āĻāĻŖāύāĻž āϏā§āϰāĻā§āώāĻž āϏāĻā§āώāĻŽ āĻāϰāĻžāϰ āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻāĻŋāĨ¤ āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āĻāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻāĻŋ āϏāĻā§āώāĻŽ āĻāϰāϞ⧠Firebase Authentication āϤā§āϰā§āĻāĻŋ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāĻāϰāĻŖ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāϝāĻŧ: āύāĻŋāĻļā§āĻāĻŋāϤ āĻšāύ āϝ⧠āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒāĻāĻŋ āĻāϰāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϤā§āϰā§āĻāĻŋāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āύāĻžāĨ¤
āĻĒāϰāĻŦāϰā§āϤ⧠āĻĒāĻĻāĻā§āώā§āĻĒ
āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āϏāĻžāĻāύ āĻāύ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻāĻāĻŋ āύāϤā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻļāĻāϏāĻžāĻĒāϤā§āϰāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āϞāĻŋāĻā§āĻ āĻāϰāĻž āĻšāϝāĻŧâāĻ āϰā§āĻĨāĻžā§, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āύāĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ, āĻĢā§āύ āύāĻŽā§āĻŦāϰ, āĻŦāĻž āĻĒā§āϰāĻŽāĻžāĻŖ āĻĒā§āϰāĻĻāĻžāύāĻāĻžāϰā§āϰ āϤāĻĨā§āϝ â āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏāĻžāĻāύ āĻāύ āĻāϰā§āĻā§āύāĨ¤ āĻāĻ āύāϤā§āύ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻ āĻāĻļ āĻšāĻŋāϏāĻžāĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āĻāĻžāĻŦā§ āϏāĻžāĻāύ āĻāύ āĻāϰā§āύ āύāĻž āĻā§āύ, āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ ā§āϝāĻžāĻĒ āĻā§āĻĄāĻŧā§ āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āĻļāύāĻžāĻā§āϤ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§, āĻāĻĒāύāĻŋ
FirebaseUser
āĻ āĻŦāĻā§āĻā§āĻ āĻĨā§āĻā§ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻŽā§āϞāĻŋāĻ āĻĒā§āϰā§āĻĢāĻžāĻāϞ āϤāĻĨā§āϝ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻĻā§āĻā§āύāĨ¤āĻāĻĒāύāĻžāϰ Firebase Realtime Database āĻāĻŦāĻ Cloud Storage āϏā§āϰāĻā§āώāĻž āύāĻŋāϝāĻŧāĻŽā§ , āĻāĻĒāύāĻŋ
auth
āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻĨā§āĻā§ āϏāĻžāĻāύ-āĻāύ āĻāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻ āύāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻāĻĄāĻŋ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āύ āĻĄā§āĻāĻž āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āϤāĻž āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāϤ⧠āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āϏāĻžāĻāύ āĻāĻāĻ āĻāϰāϤā§, signOut
āĻāϞ āĻāϰā§āύ:
Kotlin
Firebase.auth.signOut()
Java
FirebaseAuth.getInstance().signOut();