Cara Mengganti Alamat Email dengan Firebase Authentication
Assalamualaikum Warahmatullahi Wabarakatuh.
Pada tutorial ini kita akan belajar bagaimana cara membuat sebuah sistem untuk mengganti alamat email user pada Firebase Authentication. Pada postingan sebelumnya saya sudah membahas beberapa materi mengenai Firebase Autentikasi menggunakan Email dan Kata Sandi, kalian bisa cek linknya dibawah ini.
Sebelum kalian memulai tutorial ini, saya sarankan kalian untuk mengikuti tutorial yang saya berikan sebelumnya, mengenai autentikasi menggunakan alamat email dan kata sandi. Karena project yang akan kita buat merupakan lanjutan dari tutorial sebelumnya.
Materi yang perlu kalian pelajari sebelumnya:
Untuk membuat sistem update email, caranya cukup mudah, kita hanya perlu menggunakan fungsi updateEmail() dari Firebase Authentication, dengan memasukan alamat email baru pada fungsi tersebut, maka user dapat menggunakan email tersebut untuk login.
Materi yang perlu kalian pelajari sebelumnya:
- Cara Melakukan Sign Up dengan Email dan Sandi pada Firebase Authentication
- Membuat Halaman Login dengan Email dan Sandi pada Firebase Authentication
- Cara Mengganti Kata Sandi Email dengan Firebase Authentication
Untuk membuat sistem update email, caranya cukup mudah, kita hanya perlu menggunakan fungsi updateEmail() dari Firebase Authentication, dengan memasukan alamat email baru pada fungsi tersebut, maka user dapat menggunakan email tersebut untuk login.
Cara Mengganti Alamat Email dengan Firebase Authentication
1) Pertama kita akan membuat activity baru bernama ChangeEmailActivity, activity ini digunakan sebagai halaman untuk menupdate email dari user yang telah terautentikasi.<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="cianjur.developer.net.firebaseexample.ChangeEmailActivity">
<ImageView
android:id="@+id/logo"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_marginTop="32dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.07999998"
app:srcCompat="@drawable/firebase_auth"
tools:ignore="ContentDescription" />
<android.support.design.widget.TextInputLayout
android:id="@+id/emailForm"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:layout_marginStart="32dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo">
<android.support.design.widget.TextInputEditText
android:id="@+id/changeEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Email Baru"
tools:ignore="HardcodedText" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/change"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:layout_marginStart="32dp"
android:layout_marginTop="8dp"
android:text="Ubah Email"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/emailForm"
tools:ignore="HardcodedText" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/change"
app:layout_constraintVertical_bias="0.13999999"
tools:visibility="visible" />
</android.support.constraint.ConstraintLayout>
View:
2) Selanjutnya buka class ChangeEmailActivity.java kalian, disini kita akan menggunakan fungsi updateEmail() untuk mengganti email lama dengan yang baru.
Demo:package cianjur.developer.net.firebaseexample;
import android.support.annotation.NonNull;
import android.support.design.widget.TextInputEditText;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class ChangeEmailActivity extends AppCompatActivity {
//Deklarasi Variable
private TextInputEditText myEmail;
private Button ChangeButtton;
private ProgressBar progressBar;
private FirebaseUser user;
private String getEmail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_email);
//Inisialisasi Widget dan Membuat Objek dari FirebaeUser
myEmail = findViewById(R.id.changeEmail);
ChangeButtton = findViewById(R.id.change);
progressBar = findViewById(R.id.progressBar);
progressBar.setVisibility(View.GONE);
user = FirebaseAuth.getInstance().getCurrentUser();
ChangeButtton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressBar.setVisibility(View.VISIBLE);
getEmail = myEmail.getText().toString().trim();
//Melakukan Proses Update, dengan memasukan email beru
user.updateEmail(getEmail)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
//Mengecek status keberhasilan saat proses update Password
if(task.isSuccessful()){
Toast.makeText(ChangeEmailActivity.this, "Email Berhasil Diubah", Toast.LENGTH_SHORT).show();
FirebaseAuth.getInstance().signOut();
finish();
}else {
Toast.makeText(ChangeEmailActivity.this, "Terjadi Kesalahan, Silakan Coba Lagi", Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
}
}
});
}
});
}
}
Setelah kita membuat sistem untuk mengubah alamat email, beriktunya kita akan belajar cara mereset ulang kata sandi menggunakan alamat email, tutorialnya dapat kalian lihat disini.
Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.
Wassalamualaikum Warahmatullahi Wabarakatuh.