Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Forgot password in Firebase for Android

I believe there is a way for changing your password in Firebase but is there a way where the user forgets the password and can be assigned a new one or re-authenticated using email or SMS OTP. I checked out on the net but couldn't seem to find one.

If there is a way how can it be implemented, what all function calls need to be made. Could you direct me with an example.

like image 356
rut_0_1 Avatar asked Mar 15 '17 02:03

rut_0_1


People also ask

How do I change my Firebase authentication password on Android?

One way to allow your users to change their password is to show a dialog where they enter their current password and the new password they'd like. You then sign in (or re-authenticate) the user with the current passwordand call updatePassword() to update it.

How do I check my Firebase password?

If you haven't yet connected your app to your Firebase project, do so from the Firebase console. Enable Email/Password sign-in: In the Firebase console, open the Auth section. On the Sign in method tab, enable the Email/password sign-in method and click Save.


2 Answers

It sounds like you're looking to send a password reset email. See this example from the Firebase documentation:

FirebaseAuth.getInstance().sendPasswordResetEmail("[email protected]")     .addOnCompleteListener(new OnCompleteListener<Void>() {         @Override         public void onComplete(@NonNull Task<Void> task) {             if (task.isSuccessful()) {                 Log.d(TAG, "Email sent.");             }         }     }); 
like image 109
Frank van Puffelen Avatar answered Oct 05 '22 15:10

Frank van Puffelen


Reset Android FireBase Password

Java File

    public class ResetPasswordActivity extends AppCompatActivity {      private EditText inputEmail;      private Button btnReset, btnBack;      private FirebaseAuth auth;      private ProgressBar progressBar;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);          setContentView(R.layout.activity_reset_password);          inputEmail = (EditText) findViewById(R.id.email);          btnReset = (Button) findViewById(R.id.btn_reset_password);          btnBack = (Button) findViewById(R.id.btn_back);          progressBar = (ProgressBar) findViewById(R.id.progressBar);          auth = FirebaseAuth.getInstance();          btnBack.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 finish();             }         });          btnReset.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                  String email = inputEmail.getText().toString().trim();                  if (TextUtils.isEmpty(email)) {                     Toast.makeText(getApplication(), "Enter your registered email id", Toast.LENGTH_SHORT).show();                     return;                 }                  progressBar.setVisibility(View.VISIBLE);                  auth.sendPasswordResetEmail(email)                          .addOnCompleteListener(new OnCompleteListener<Void>() {                             @Override                             public void onComplete(@NonNull Task<Void> task) {                                 if (task.isSuccessful()) {                                     Toast.makeText(ResetPasswordActivity.this, "We have sent you instructions to reset your password!", Toast.LENGTH_SHORT).show();                                 } else {                                     Toast.makeText(ResetPasswordActivity.this, "Failed to send reset email!", Toast.LENGTH_SHORT).show();                                 }                                  progressBar.setVisibility(View.GONE);                             }                         });             }         });     }  } 

XML FILE

<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 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:layout_gravity="center"      android:fitsSystemWindows="true"     tools:context=".LoginActivity">      <LinearLayout         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_marginTop="30dp"         android:gravity="center"         android:orientation="vertical"         android:padding="@dimen/activity_horizontal_margin">             <TextView             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_gravity="center_horizontal"             android:padding="10dp"             android:text="@string/lbl_forgot_password"             android:textColor="@android:color/white"             android:textSize="20dp" />          <TextView             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_marginBottom="10dp"             android:gravity="center_horizontal"             android:padding="@dimen/activity_horizontal_margin"             android:text="@string/forgot_password_msg"             android:textColor="@android:color/white"             android:textSize="14dp" />          <android.support.design.widget.TextInputLayout             android:layout_width="match_parent"             android:layout_height="wrap_content">              <EditText                 android:id="@+id/email"                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:layout_marginBottom="10dp"                 android:layout_marginTop="20dp"                 android:hint="@string/hint_email"                 android:inputType="textEmailAddress"                 android:textColor="@android:color/white"                 android:textColorHint="@android:color/white" />         </android.support.design.widget.TextInputLayout>          <!-- Login Button -->          <Button             android:id="@+id/btn_reset_password"             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:layout_marginTop="20dip"             android:background="@color/colorAccent"             android:text="@string/btn_reset_password"             android:textColor="@android:color/black" />          <Button             android:id="@+id/btn_back"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_marginTop="10dp"             android:background="@null"             android:text="@string/btn_back"             android:textColor="@color/colorAccent" />      </LinearLayout>      <ProgressBar         android:id="@+id/progressBar"         android:layout_width="30dp"         android:layout_height="30dp"         android:layout_gravity="center|bottom"         android:layout_marginBottom="20dp"         android:visibility="gone" /> </android.support.design.widget.CoordinatorLayout> 
like image 30
mohit singh Avatar answered Oct 05 '22 15:10

mohit singh