如何使用Firebase身份验证重置密码并实时更新密码?

时间:2019-01-23 09:11:05

标签: android firebase firebase-realtime-database firebase-authentication

我有一个构建的应用程序,当用户注册帐户时,用户详细信息将通过firebase的实时数据库以及“身份验证”面板保存。但是我遇到的问题是,每当我尝试重置帐户密码时,实时数据库密码数据都不会更改。当我在Firebase中成功重置密码时,有什么方法可以更新存储在实时数据库中的密码?

示例:

我已经在Firebase身份验证中重置了密码,但是一旦重置了密码,又如何在实时数据库中更新密码?我将密码重设为123456,而不是kwkwkw,有人可以帮忙吗?非常感谢。

d

这是我的密码重置密码:

mAuth.sendPasswordResetEmail(userEmail).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if(task.isSuccessful()) {
                        Toast.makeText(forgotpass.this, "Please check your email account if you want to reset your password.", Toast.LENGTH_SHORT).show();;
                        startActivity(new Intent(forgotpass.this, Home.class));
                    }
                    else {
                        String message = task.getException().getMessage();
                        Toast.makeText(forgotpass.this,"Error occured." + message,Toast.LENGTH_SHORT).show();
                    }
                }
            });

这是我的整个重置密码类的代码

package com.test.smartparkingsystem_cit;

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.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.FirebaseAuth;

public class forgotpass extends AppCompatActivity {

    private Button goback;
    private EditText email_reset;
    private Button ResetPass;
    private FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_forgotpass);

        // get instance of firebase real time database
        mAuth = FirebaseAuth.getInstance();

        // Initialize variables
        ResetPass = (Button) findViewById(R.id.reset_pass);
        email_reset = (EditText) findViewById(R.id.forgot_email);

        // Reset password
        ResetPass.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ResetPassword();
            }
        });

        // go back to login button
        goback = (Button) findViewById(R.id.gobackbtn);
        goback.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                gobackHome();
            }
        });
    }

    // function to reset password
    public void ResetPassword() {
        String userEmail = email_reset.getText().toString();

        if (TextUtils.isEmpty(userEmail)) {
            Toast.makeText(forgotpass.this, "Please input email address first.", Toast.LENGTH_SHORT).show();
        }
        else {
            mAuth.sendPasswordResetEmail(userEmail).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if(task.isSuccessful()) {
                        Toast.makeText(forgotpass.this, "Please check your email account if you want to reset your password.", Toast.LENGTH_SHORT).show();;
                        startActivity(new Intent(forgotpass.this, Home.class));
                    }
                    else {
                        String message = task.getException().getMessage();
                        Toast.makeText(forgotpass.this,"Error occured." + message,Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }

    // function for go back to login screen
    public void gobackHome() {
        Intent gobackhome = new Intent(this, Home.class);
        startActivity(gobackhome);
    }
}

0 个答案:

没有答案
相关问题