Как сбросить пароль, используя Firebase аутентификацию, а также обновить пароль в базе данных в реальном времени? - PullRequest
0 голосов
/ 23 января 2019

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