android - Firebase 验证错误且不会变为真,重置后密码也不会更新
问题描述
我已经能够发送并验证电子邮件,但火力基地没有更新。此外,当我检查重置密码时,电子邮件被重置并且火力基地也没有改变。如何将其更改为密码和电子邮件验证将在 fire base 中更新的位置?
我搜索了几个网站,看了几个视频。我对编码真的很陌生。谢谢您的帮助。
这是我的登录信息:
public class Login extends AppCompatActivity implements View.OnClickListener {
//Variables
private Button register, signin, forgotpassword;
private TextInputLayout Email, Password;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_login);
register = findViewById(R.id.register);
register.setOnClickListener(this);
signin = (Button)findViewById(R.id.SignIn);
signin.setOnClickListener( this );
Email = findViewById( R.id.email );
Password = findViewById( R.id.password );
mAuth = FirebaseAuth.getInstance();
forgotpassword = (Button) findViewById(R.id.forgot_password);
forgotpassword.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.register:
startActivity(new Intent(this, SignUp.class));
break;
case R.id.SignIn:
startActivity( new Intent(this,UserInterface.class) );
break;
case R.id.forgot_password:
startActivity( new Intent(this,ForgotPass.class) );
break;
}
}
private void userlogin() {
String email = Email.getEditText().getText().toString().trim();
String password = Password.getEditText().getText().toString().trim();
if (email.isEmpty()){
Email.setError("Email is required!");
Email.requestFocus();
return;
}
if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
Email.setError("Please provide valid Email!");
Email.requestFocus();
return;
}
if (password.isEmpty()){
Password.setError("Password is required!");
Password.requestFocus();
return;
}
if (password.length() < 6){
Password.setError("Min password length is 6 characters!");
Password.requestFocus();
return;
}
mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener( new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user.isEmailVerified()){
startActivity(new Intent(Login.this, UserInterface.class));
}else{
user.sendEmailVerification();
Toast.makeText(Login.this, "Check your email to verify your account!", Toast.LENGTH_LONG).show();
}
}else {
Toast.makeText(Login.this, "Failed to login! Please check Email and Password", Toast.LENGTH_LONG).show();
}
}
});
}
}
这是我忘记的密码
public class ForgotPass extends AppCompatActivity {
private Button reset_password;
private TextInputLayout fullname, email;
FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView( R.layout.activity_forgot_pass );
email = findViewById(R.id.email);
fullname = findViewById(R.id.fullname);
reset_password = (Button) findViewById(R.id.fp_submit);
auth = FirebaseAuth.getInstance();
reset_password.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
fp_submit();
}
} );
}
private void fp_submit(){
String email = this.email.getEditText().getText().toString().trim();
String fullname = this.fullname.getEditText().getText().toString().trim();
if (fullname.isEmpty()){
this.fullname.setError( "Name is required" );
this.fullname.requestFocus();
return;
}
if (email.isEmpty()){
this.email.setError( "Email is required" );
this.email.requestFocus();
return;
}
if (!Patterns.EMAIL_ADDRESS.matcher( email ).matches()){
this.email.setError( "Please priovide valid email" );
this.email.requestFocus();
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( ForgotPass.this, "Check your email to reset your password",Toast.LENGTH_LONG ).show();
startActivity( new Intent(ForgotPass.this, Login.class) );
}else{
Toast.makeText( ForgotPass.this, "Please try again!", Toast.LENGTH_LONG ).show();
}
}
} );
}
}
这是我的注册
public class SignUp extends AppCompatActivity implements View.OnClickListener {
private FirebaseAuth mAuth;
private TextInputLayout FullName, UserName, Email, Password;
private Button Submit, login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_sign_up);
mAuth = FirebaseAuth.getInstance();
login = (Button)findViewById(R.id.login);
login.setOnClickListener(this);
Submit = (Button) findViewById(R.id.submit);
Submit.setOnClickListener(this);
FullName = findViewById(R.id.fullname);
UserName = findViewById(R.id.username);
Email = findViewById(R.id.email);
Password = findViewById(R.id.password);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.login:
startActivity(new Intent(this, Login.class));
break;
case R.id.submit:
startActivity( new Intent(this,Login.class));
break;
}
}
private void submit(){
String email = Email.getEditText().getText().toString().trim();
String password = Password.getEditText().getText().toString().trim();
String fullName = FullName.getEditText().getText().toString().trim();
String username = UserName.getEditText().getText().toString().trim();
if (fullName.isEmpty()){
FullName.setError("Full Name is required!");
FullName.requestFocus();
return;
}
if (username.isEmpty()){
UserName.setError("User Name is required!");
UserName.requestFocus();
return;
}
if (password.isEmpty()){
Password.setError("Password is required!");
Password.requestFocus();
return;
}
if (email.isEmpty()){
Email.setError( "Email is required!" );
Email.requestFocus();
return;
}
if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
Email.setError("Please provide valid Email!");
Email.requestFocus();
return;
}
if (password.length() < 6){
Password.setError("Min password length should be six characters!");
Password.requestFocus();
return;
}
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener( new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
User user = new User (fullName,email,username,password);
FirebaseDatabase.getInstance().getReference("user")
.child( FirebaseAuth.getInstance().getCurrentUser().getUid() )
.setValue( user ).addOnCompleteListener( new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Toast.makeText( SignUp.this, "Successfully registered", Toast.LENGTH_LONG ).show();
if (task.isSuccessful()){
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user.isEmailVerified()){
startActivity(new Intent(SignUp.this, Login.class));
}else{
user.sendEmailVerification();
Toast.makeText(SignUp.this, "Check your email to verify your account!", Toast.LENGTH_LONG).show();
}
}startActivity(new Intent(SignUp.this,Login.class));
}else{
Toast.makeText( SignUp.this,"Unable to register!", Toast.LENGTH_LONG ).show();
}
}
} );
}else{
Toast.makeText( SignUp.this,"Unable to register!", Toast.LENGTH_LONG ).show();
}
}
} );
} }
解决方案
推荐阅读
- html - xaringan 演示文稿不显示 html 小部件,即使在编织提供的模板时也是如此
- javascript - 如何根据ID计算我的交易?
- javascript - 变量在 javascript 中的 mySQL 查询函数范围内表现异常
- google-analytics - Google Analytics 4 的旧受众概览报告在哪里?(新版本)
- bash - 使用 shell 脚本格式化文件内容
- css - 仅针对特定 div 离线工作的 CSS 样式
- c++ - 如何正确使用 std::getline
- javascript - 带有 Vue CLI 的 Vue 2 - 如何使 src/static 静态以便我可以使用其中的图像?
- c# - C# 条件运算符
- python - 使用 python 或命令行组合 csv 文件会在输出文件中产生错误