Membuat Halaman Login di Android dengan Firebase
Halo
selamat siang pada kesempatan kali ini kita akan membuat halaman Login di
Android dengan Firebase, untuk membuat login dengan Firebase sangat mudah kita
tinggal memanfaatkan fungsi authentikasi dari firebase, fungsi authentikasi
firebase ini sangat lengkap kita bisa login lewat facebook, google akun,
twitter, email, no handphone dll, namun yang akan kita bahas pada tutorial kali
ini yaitu login lewat Email dan Password.
Untuk membuat Login dengan Email/Password di Firebase Langkah pertama kita aktifkan dulu signin method nya di Firebase Console, caranya yaitu anda Login dulu ke Firebase kemudian pilih projek anda yang akan menggunakan authentikasi kemudian pada tab develop di samping kiri pilih authentication -> sign-in method -> pilih provider yang akan digunakan untuk melakukan authentikasi disini saya menggunakan provider Email/Password -> pada status pilih enable.
kemudian pada tab users tambahkan user yang
akan digunakan untuk login nantinya karena pada tutorial kali ini kita tidak
akan membuat register jadi usernya dimasukan secara manual dari firebase
Buka Projek
Android anda yang akan ditambahkan authentikasi melalui firebase kemudian
sambungkan projek anda dengan firebase lihat: cara menyambungkan projek androidke firebase
kemudian
tambahkan despendency firebase auth di build.gradle
compile 'com.google.firebase:firebase-auth:11.6.2'
selanjutnya
buat activity baru dan tambhkan dua buah editTeks untuk email dan password
kemudian tambhkan sebuah button untuk submit, atur tampilanya agar terlihat
lebih cantik seperti ini:
xml version="1.0" encoding="utf-8"?>
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"
android:padding="10dp"
android:background="@color/colorPrimary"
tools:context="giviews.id.fireapp.LoginActivity">
android:id="@+id/logoImage"
android:layout_width="100dp"
android:layout_height="130dp"
android:layout_marginTop="20dp"
android:layout_centerHorizontal="true"
android:src="@drawable/logo"
android:textAlignment="center" />
android:id="@+id/txtLogo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Firebase Login"
android:gravity="center"
android:textColor="#ffffff"
android:layout_below="@+id/logoImage"
android:textSize="25sp"/>
android:id="@+id/email"
android:background="@drawable/input_background"
android:padding="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Email ..."
android:textColor="#807f7f"
android:layout_below="@+id/txtLogo"
android:layout_marginTop="60dp"
android:inputType="textEmailAddress" />
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password ..."
android:background="@drawable/input_background"
android:padding="15dp"
android:textColor="#807f7f"
android:layout_marginTop="20dp"
android:layout_below="@+id/email"
android:inputType="textPassword" />
android:id="@+id/loginBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/password"
android:background="@drawable/btn_background"
android:padding="15dp"
android:textColor="@color/colorPrimary"
android:layout_marginTop="20dp"
android:textSize="20dp"
android:text="Sign In"/>
untuk
background Edit Teksnya buat file input_backgrounds.xml di drawable dan masukan
kode berikut:
xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
android:color="#fff" />
android:radius="5dp" />
dan buat lagi
file btn_background.xml di drawable untuk background button nya:
xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
android:color="@color/colorAccent" />
android:radius="5dp" />
kemudian
untuk javanya masukan kode berikut:
package giviews.id.fireapp; import android.content.Intent; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; public class LoginActivity extends AppCompatActivity { private EditText mEmailField; private EditText mPasswordField; private Button mloginBtn; private FirebaseAuth mAuth; private FirebaseAuth.AuthStateListener mAuthListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //Membuat FullScreen getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); mEmailField = (EditText) findViewById(R.id.email); mPasswordField = (EditText) findViewById(R.id.password); mloginBtn = (Button) findViewById(R.id.loginBtn); mAuth = FirebaseAuth.getInstance(); mAuthListener = new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { if (firebaseAuth.getCurrentUser() != null) { startActivity(new Intent(LoginActivity.this, MainActivity.class) ); } } }; mloginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startSignIn(); } }); } @Override protected void onStart() { super.onStart(); mAuth.addAuthStateListener(mAuthListener); } private void startSignIn() { String email = mEmailField.getText().toString(); String password = mPasswordField.getText().toString(); if (TextUtils.isEmpty(email) | TextUtils.isEmpty(password)) { Toast.makeText(LoginActivity.this, "Fields are Empty", Toast.LENGTH_SHORT).show(); } else { mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Tasktask) { if (!task.isSuccessful()) { Toast.makeText(LoginActivity.this, "Login Problem", Toast.LENGTH_SHORT).show(); } } }); } } }
Jika Login
berhasil akan masuk ke MainActivity untuk isi main Activity bisa anda buat
Tulisan Login Berhasil Pada TeksView, kemudian bisa anda tambahkan sebuah
button untuk logout, kode logout sangat simple hanya mAuth.signOut();
Ok
sekianlah tutorial kali ini pada postingan yang lain kita akan membuat cara
membuat halaman registrasi dengan firebase, selamat mencoba semoga bermanfaat, jika ada yang ditanyakan silakan kirimkan pertanyaan anda pada kolom komentar dibawah