web-dev-qa-db-ja.com

FirebaseでAndroidのパスワードを忘れた

Firebaseでパスワードを変更する方法はあると思いますが、ユーザーがパスワードを忘れて、新しいパスワードを割り当てたり、電子メールまたはSMS OTPを使用して再認証することができます。ネットでチェックアウトしましたが、見つけられなかったようです。

実装方法があれば、すべての関数呼び出しを行う必要があります。例を挙げてください。

21
rut_0_1

パスワードリセットメールを送信しようとしているようです。 Firebaseドキュメントのこの例 を参照してください:

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

リセットAndroid FireBaseパスワード

Javaファイル

    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ファイル

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

ドキュメント のコピーアンドペースト:

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

ドキュメントへのこのリンクはあなたを助けるはずです:

[〜#〜] documentation [〜#〜]

一言で言えば、FirebaseにはchangePasswordというメソッドがあり、リンクをたどって実装方法を確認してください。

3
Rikhil Shah

以下は、進行ダイアログを使用してユーザーの電子メールアドレスにパスワードリセットリンクを送信する簡単な方法です(インターネットが遅いためfirebaseがreset passwordリクエストを完了するのに時間がかかりました)クライアント側の接続なので、進行ダイアログが役立ちます)

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

Kotlinが選択する言語である場合、これを使用できます。

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