Firebase Authentication ile örnek uygulama

Merhabalar bu yazımda Firebase Authentication hakkında bahsedeceğim.

Firebase Authentication bulut tabanlı, tüm cihazlarda kişiselleştirilebilir, genellikle uygulamalarda  kimlik doğrulama için kullanılır. Online mobil oyun geliştirenler bu hizmetin çoğu kez kullanıldığını görür. Ben de yaptığım bi uygulamadaki admin paneline girişi göstereceğim. Aşağıda Firebase içerisinde sadece bir kullanıcı oluşturdum. Uygulama içerisindeki admin login activity’si ile aşağıdaki resimde göründüğü gibi Firebase içerisinde tanımladığım mail ve şifre ile girişini yapacak ve admin paneline girmiş olacak.


Şimdi gelelim kod tarafına. İlk olarak field oluşturdum.

private FirebaseAuth mAuth;

Sonra onCreate() metodu içerisinde sınıf instance’ı aldım..

mAuth = FirebaseAuth.getInstance();

Sonra kullanıcı mail ve şifreyi girince butona bastıktan sonra signIn() metodunu çalıştırmaya başladım.

private void startSignIn() {

	String email = mAdminId.getText().toString();
	String pass = mAdminPass.getText().toString();

	mAuth.signInWithEmailAndPassword(email, pass).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(AdminLoginPanel.this, "Authentication failed.",
						Toast.LENGTH_SHORT).show();
				updateUI(null);
			}
		}
	});
}

Eğer giriş başarılı olursa arayüzü dönüte göre güncelledim, admin panele ulaşabilmesini sağladım.

public void updateUI(FirebaseUser currentUser){
    if (currentUser != null) {
        Intent intent = new Intent(AdminLoginPanel.this, AdminPanel.class);
        startActivity(intent);
        finish();
    } else {
        Toast.makeText(AdminLoginPanel.this, "Please sign-in.",
                Toast.LENGTH_SHORT).show();
    }
}

Firebase Storage ve Firebase Realtime Database hakkında yazdığım diğer yazılarımı okuyabilirsiniz.