我有一个构建的应用程序,当用户注册帐户时,用户详细信息将通过firebase的实时数据库以及“身份验证”面板保存。但是我遇到的问题是,每当我尝试重置帐户密码时,实时数据库密码数据都不会更改。当我在Firebase中成功重置密码时,有什么方法可以更新存储在实时数据库中的密码?
示例:
我已经在Firebase身份验证中重置了密码,但是一旦重置了密码,又如何在实时数据库中更新密码?我将密码重设为123456
,而不是kwkwkw
,有人可以帮忙吗?非常感谢。
这是我的密码重置密码:
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);
}
}