我正在尝试在 android 中创建一个注册 Activity ,我的控件转到注册方法,但是当我单击“注册”时,我已经完成了验证,它直接转到下一个 Activity ,而无需验证或注册 当我启动应用程序时 并进行注册 Activity ,它工作正常 另外,日志消息正在打印 但在调用注册方法后,没有任何效果 控制转到 Register() 方法之后它不起作用 它直接打开下一个 Activity 验证和 firebase create 方法无法访问 这是我写的代码
package com.ap.pran;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.util.Patterns;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.FirebaseDatabase;
public class SignUp extends AppCompatActivity implements View.OnClickListener {
ProgressBar progressBar;
EditText editTextEmail, editTextPassword, editTextMobileNo, editTextVehicleNo, editTextName;
private static final String TAG = " ANAND MESSAGE";
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
Log.i(TAG, "in onCreate1");
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextPassword = (EditText) findViewById(R.id.passWord);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
editTextMobileNo = (EditText) findViewById(R.id.editTextMobileNo);
editTextVehicleNo = (EditText) findViewById(R.id.editTextVehicleNo);
editTextName = (EditText) findViewById(R.id.editTextName);
mAuth = FirebaseAuth.getInstance();
findViewById(R.id.buttonSignUp).setOnClickListener(this);
findViewById(R.id.SignIn).setOnClickListener(this);
}
private void registerUser() {
Log.i(TAG, "In register method");
String email = editTextEmail.getText().toString().trim();
String password = editTextPassword.getText().toString().trim();
if (email.isEmpty()) {
editTextEmail.setError("Email is required !!!");
editTextEmail.requestFocus();
return;
}
if (password.isEmpty()) {
editTextPassword.setError("Password is required !!!");
editTextPassword.requestFocus();
return;
}
if (password.length()<6){
editTextPassword.setError("Password length must be greater than 6");
editTextPassword.requestFocus();
return;
}
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
Toast.makeText(SignUp.this,"User Registred !!!",Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(SignUp.this, "User Registration Failed !!!", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonSignUp:
Log.i(TAG, "In case 1");
registerUser();
break;
case R.id.SignIn:
startActivity(new Intent(this, MainActivity.class));
Log.i(TAG, "In case 2");
break;
}
}
}
最佳答案
您应该记住,如果您是第一次使用此方法:
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
Toast.makeText(SignUp.this,"User Registred !!!",Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(SignUp.this, "User Registration Failed !!!", Toast.LENGTH_SHORT).show();
}
}
});
它将完美地工作。但在注册任何用户时,它会在完成注册后自动登录该用户。因此,注册成功后无需再次登录。 要再次进行新注册,您必须注销该应用程序中之前注册的用户。
注意:
我还建议您在 else 语句中使用 Toast.makeText(SignUp.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show();
,如下所示如果注册失败:
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
Toast.makeText(SignUp.this,"User Registred !!!",Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(SignUp.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
这将有助于确定注册失败的原因。
关于java - 我试图在执行时在 android 中创建一个注册 Activity ,控制进入注册方法,之后控制停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61360653/