webentwicklung-frage-antwort-db.com.de

Passwort in Firebase für Android vergessen

Ich glaube, es gibt eine Möglichkeit, Ihr Kennwort in Firebase zu ändern, aber es gibt eine Möglichkeit, bei der der Benutzer das Kennwort vergisst und ein neues zugewiesen oder es kann mit E-Mail oder SMS OTP erneut authentifiziert werden. Ich habe im Internet ausgecheckt, konnte aber scheinbar keinen finden. 

Wenn es einen Weg gibt, wie es implementiert werden kann, müssen alle Funktionsaufrufe ausgeführt werden. Könnten Sie mir ein Beispiel geben? 

15
rut_0_1

Es klingt, als würden Sie nach einer E-Mail zum Zurücksetzen des Passworts suchen. Siehe dieses Beispiel aus der Firebase-Dokumentation :

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.");
            }
        }
    });
44

Setzen Sie das Android FireBase-Kennwort zurück

Java-Datei 

    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-DATEI

<?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>
10
mohit singh

Kopieren und Einfügen von Dokumentation :

FirebaseAuth auth = FirebaseAuth.getInstance();
String emailAddress = "[email protected]";

auth.sendPasswordResetEmail(emailAddress)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "Email sent.");
                }
            }
        });
3
Diego Venâncio

Dieser Link zu den Dokumenten sollte Ihnen helfen:

DOKUMENTATION

Kurz gesagt, Firebase hat eine Methode namens changePassword. Folgen Sie dem Link, um herauszufinden, wie Sie dieses implementieren können.

3
Rikhil Shah

Im Folgenden finden Sie die einfache Methode zum Senden des Links zum Zurücksetzen des Kennworts an die E-Mail-Adresse des Benutzers mit dem Fortschrittsdialog (es dauerte einige Zeit, bis die Firebase die Anforderung abgeschlossen hat Kennwort zurücksetzen aufgrund einer langsamen Internetverbindung auf Clientseite Fortschrittsdialog wird hilfreich sein)

public void resetUserPassword(String email){
        FirebaseAuth mAuth = FirebaseAuth.getInstance();
        final ProgressDialog progressDialog = new ProgressDialog(ForgotPasswordActivity.this);
        progressDialog.setMessage("verifying..");
        progressDialog.show();

        mAuth.sendPasswordResetEmail(email)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if(task.isSuccessful()){
                            progressDialog.dismiss();
                            Toast.makeText(getApplicationContext(), "Reset password instructions has sent to your email",
                                    Toast.LENGTH_SHORT).show();
                        }else{
                            progressDialog.dismiss();
                            Toast.makeText(getApplicationContext(),
                                    "Email don't exist", Toast.LENGTH_SHORT).show();
                        }
                    }
                }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                progressDialog.dismiss();
                Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
            }
        });
    }
1
Hassnain Jamil

Wenn Kotlin Ihre bevorzugte Sprache ist, können Sie Folgendes verwenden:

val fAuth = FirebaseAuth.getInstance()
fAuth.sendPasswordResetEmail(email).addOnCompleteListener({ listener ->
        if (listener.isSuccessful) {
            // Do something when successful
        } else {
            // Do something when not successful
        }
})
0
JPetric