Login dan Registrasi di Android dengan Firebase. Seperti yang kami sampaikan di artikel sebelumnya, jika menggunakan firebase dapat membantu kita dalam membangun aplikasi dalam waktu yang cepat.

Dalam artikel kali ini kami akan menggunakan source code yang sudah kami buat pada artikel sebelumnya. Dapat dilihat disini Integrasi aplikasi android dan firebase

Demo Login dan Registrasi di Android dengan Firebase

Login dan Registrasi di Android dengan Firebase

Kali ini kita akan mencoba dari proses user registrasi dan login ke aplikasi milik kita. Jadi yang akan kita buat disini adalah Form registrasi dan form login . Hal pertama yang akan kita lakukan adalah menambahkan dependensi firebase ke aplikasi milik kita, dengan cara pilih tools > firebase > Authentication.

Lalu klik conenct > klik lagi Add Firebase Authentication to your App. Proses penambahan selesai.

Jika anda mengalami error dengan cara yang diatas, ubah atau tambahkan gradle/app anda menjadi seperti ini.

buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

dan proyek/gradle anda menjadi seperti ini.

dependencies {
    implementation "com.google.firebase:firebase-auth:16.1.0"
}
apply plugin: 'com.google.gms.google-services'

setelah itu, buka dashboard firebase anda pilih Authentication > Sign-in method > Email/Password , lalu di enable.

Login dan Registrasi di Android dengan Firebase

Silahkan anda buat dua empty activty simpan dengan nama Login dan Register. Sebelum kita memulai, ubah dulu bagian MainActivity, kita akan menambahkan proses pengecekan user login.

final FirebaseUser user = auth.getCurrentUser();
        //Pengecekan, jika tidak ada login. Di arahkan ke Login activity.
        if (user == null) {
            startActivity(new Intent(MainActivity.this, Login.class));
            finish();
        }

ubah xml register anda menjadi seperti ini

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Register">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="66dp"
        android:textSize="30sp"
        android:layout_centerHorizontal="true"
        android:text="Halaman Daftar" />


    <EditText
        android:id="@+id/emailET"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:layout_marginTop="145dp"
        android:ems="10"
        android:inputType="textEmailAddress"
        android:hint="Email" />
    <EditText
        android:id="@+id/passwordET"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/emailET"
        android:layout_below="@+id/emailET"
        android:ems="10"
        android:inputType="textPassword"
        android:hint="Password"
        />
    <Button
        android:id="@+id/btn_register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/emailET"
        android:layout_below="@+id/passwordET"
        android:layout_marginEnd="0dp"
        android:text="Daftar" />

    <Button
        android:layout_marginTop="25dp"
        android:id="@+id/btn_backtologin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/btn_register"
        android:layout_marginEnd="0dp"
        android:text="Kembali ke Form Login" />

</RelativeLayout>

Tampilan register anda akan seperti ini jika menggunakan skrip diatas.

Login dan Registrasi di Android dengan Firebase

dan untuk login xml nya, menjadi seperti ini

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Login">

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="66dp"
    android:textSize="30sp"
    android:layout_centerHorizontal="true"
    android:text="Halaman Login" />


    <EditText
    android:id="@+id/emailET"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerInParent="true"
    android:layout_marginTop="145dp"
    android:ems="10"
    android:inputType="textEmailAddress"
    android:hint="Email " />
<EditText
    android:id="@+id/passwordET"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/emailET"
    android:layout_below="@+id/emailET"
    android:ems="10"
    android:hint="Password"
    android:inputType="textPassword" />
<Button
    android:id="@+id/btn_masuk"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/emailET"
    android:layout_below="@+id/passwordET"
    android:layout_marginEnd="0dp"
    android:text="Masuk" />

<Button
    android:id="@+id/btn_daftar"
    android:layout_marginTop="50dp"
    android:layout_centerHorizontal="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Daftar"
    android:layout_below="@+id/btn_masuk"
    />


</RelativeLayout>

dan tampilannya akan seperti ini.

Login dan Registrasi di Android dengan Firebase

Jika anda jalankan sekarang, pasti aplikasi anda akan membuka Login activity. Itu karena kita sudah menambahkan bagian pengecekan di dalam MainActivity.

Kemudia, ubah Register.class anda menjadi seperti ini

public class Register extends AppCompatActivity {
    Button btn_backtologin,btn_register;
    EditText email_et,password_et;
    String email_txt,password_txt;
    private FirebaseAuth mAuth;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        btn_backtologin = findViewById(R.id.btn_backtologin);
        email_et    = findViewById(R.id.emailET);
        password_et = findViewById(R.id.passwordET);
        btn_register = findViewById(R.id.btn_register);
        mAuth = FirebaseAuth.getInstance();
        btn_backtologin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(Register.this, Login.class));
                finish();
            }
        });
        
        btn_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                email_txt = email_et.getText().toString();
                password_txt = password_et.getText().toString();
                if (TextUtils.isEmpty(email_txt)) {
                    Toast.makeText(getApplicationContext(), "Masukan Email !!!", Toast.LENGTH_SHORT).show();
                    return;
                }
                if (TextUtils.isEmpty(password_txt)) {
                    Toast.makeText(getApplicationContext(), "Masukan Password !!!", Toast.LENGTH_SHORT).show();
                    return;
                }

                mAuth.createUserWithEmailAndPassword(email_txt, password_txt)
                        .addOnCompleteListener(Register.this, new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                if (task.isSuccessful()) {
                                    // Daftar sukses, masuk ke Main Activity
                                    FirebaseUser user = mAuth.getCurrentUser();
                                    Intent intent = new Intent(Register.this, MainActivity.class);
                                    startActivity(intent);
                                    finish();
                                } else {
                                    // Jika daftar gagal, memberikan pesan
                                    Toast.makeText(Register.this, "Proses Pendaftaran gagal : " +  task.getException(),
                                            Toast.LENGTH_LONG).show();
                                }
                            }
                        });


            }
        });
        
    }
}

dan berikut adalah isi login activity

public class Login extends AppCompatActivity {
    Button btn_daftar,btn_masuk;
    EditText email_et,password_et;
    String email_txt,password_txt;
    private FirebaseAuth mAuth;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        btn_daftar = findViewById(R.id.btn_daftar);
        email_et    = findViewById(R.id.emailET);
        password_et = findViewById(R.id.passwordET);
        mAuth = FirebaseAuth.getInstance();
        btn_masuk = findViewById(R.id.btn_masuk);

        btn_masuk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                email_txt = email_et.getText().toString();
                password_txt = password_et.getText().toString();
                if (TextUtils.isEmpty(email_txt)) {
                    Toast.makeText(getApplicationContext(), "Masukan Email !!!", Toast.LENGTH_SHORT).show();
                    return;
                }
                if (TextUtils.isEmpty(password_txt)) {
                    Toast.makeText(getApplicationContext(), "Masukan Password !!!", Toast.LENGTH_SHORT).show();
                    return;
                }
                mAuth.signInWithEmailAndPassword(email_txt, password_txt)
                        .addOnCompleteListener(Login.this, new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                if (task.isSuccessful()) {
                                    // Login sukses, masuk ke Main Activity
                                    FirebaseUser user = mAuth.getCurrentUser();
                                    Intent intent = new Intent(Login.this, MainActivity.class);
                                    startActivity(intent);
                                    finish();
                                } else {
                                    // Jika Login gagal, memberikan pesan
                                    Toast.makeText(Login.this, "Proses Login gagal : " +  task.getException(),
                                            Toast.LENGTH_LONG).show();
                                }
                            }
                        });

            }
        });


        //Click listerner, kalau tombol btn_daftar di klik. Membuka activity register
        btn_daftar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(Login.this, Register.class));
                finish();
            }
        });
    }

Dan MainActivity yang baru, sudah ditambahkan logout.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Pengambilan data, apakah ada yang login.
        auth = FirebaseAuth.getInstance();
        final FirebaseUser user = auth.getCurrentUser();
        //Pengecekan, jika tidak ada login. Di arahkan ke Login activity.
        if (user == null) {
            startActivity(new Intent(MainActivity.this, Login.class));
            finish();
        }
        logout = findViewById(R.id.logout);
        logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Logout user dan alihkan ke form login.
                auth.signOut();
                startActivity(new Intent(MainActivity.this, Login.class));
                finish();
            }
        });
        //
    }

dan XML activity_main

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">


    <Button
        android:id="@+id/logout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="199dp"
        android:text="Keluar" />
</RelativeLayout>

Artikel ini tentang Login dan Registrasi di Android dengan Firebase sudah selesai, jika ada error silahkan tinggalkan pesan di kolom komentar. Terima kasih sudah berkunjung, semoga bermanfaat.

Jika mau, silahkan anda download Souce Code, Copy dan paste kan file google-services.json milik anda kedalam folder app

Subscribe To Our Newsletter

Subscribe To Our Newsletter

Kami memberikan tutorial baru tiap harinya !!!

You have Successfully Subscribed!