У меня есть приложение, которое я создаю. Когда пользователь регистрирует учетную запись, данные пользователя сохраняются в базе данных 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);
}
}