我正在使用Andrid Studio和Firebase向用户注册电子邮件,名称,地址和密码。当我单击向数据库注册用户时,它可能无法成功注册,并转到else语句,该任务未成功。
我已经在Firebase上手动添加了登录电子邮件,但是场景与用户未登录的情况相同...
我很困惑,不知道我做错了什么...我正在关注本教程,而我正在关注的教程也做了同样的事情...
这是M Sigup ...
public class AdminSignUp extends AppCompatActivity {
TextView textLogin;
Button btnSignup;
EditText AdminId,EmailAdmin,AdminName,AdminPassword,PhoneNO,Address;
private ProgressDialog progressDialog;
private FirebaseAuth mAuth;
DatabaseReference databaseAdminRegistration;
@Override
public void onBackPressed() {
super.onBackPressed();
startActivity(new Intent(AdminSignUp.this,MainActivity.class));
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_sign_up);
progressDialog = new ProgressDialog(this);
mAuth = FirebaseAuth.getInstance();
textLogin=findViewById(R.id.txtLogin);
btnSignup=findViewById(R.id.ButtonAdminSignUp);
AdminId=findViewById(R.id.edtAdminId);
EmailAdmin=findViewById(R.id.admiemail);
AdminName=findViewById(R.id.edtAdminName);
AdminPassword=findViewById(R.id.edtAdminPassword);
PhoneNO=findViewById(R.id.edtAdminPhNo);
Address=findViewById(R.id.edtAdminAddress);
btnSignup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FunRegisterAdmin();
// Toast.makeText(AdminSignUp.this, "IN PROGRESS", Toast.LENGTH_SHORT).show();
}
});
textLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(AdminSignUp.this,AdminLogin.class));
}
});
}
private void FunRegisterAdmin()
{
String email = EmailAdmin.getText().toString().trim().toLowerCase();
String password = AdminPassword.getText().toString().trim();
final String name= AdminName.getText().toString().trim();
if (TextUtils.isEmpty(email)|| !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()){
EmailAdmin.setError("Please Enter a Valid Email");
return;
}
if (TextUtils.isEmpty(password)|| password.length() < 4 || password.length() > 10){
AdminPassword.setError("Enter The Password");
return;
}
if(TextUtils.isEmpty(name))
{
Toast.makeText(this,"Please Enter NAme",Toast.LENGTH_LONG).show();
return;
}
progressDialog.setMessage("Registering User...");
progressDialog.show();
mAuth.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
String id = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Employee");
reference.child(id).child("Name").setValue(name);
Toast.makeText(AdminSignUp.this, "Registered Successfully", Toast.LENGTH_LONG).show();
}else {
Toast.makeText(AdminSignUp.this, "Not Registered...",Toast.LENGTH_LONG).show();
}
progressDialog.dismiss();
}
});
}
}
这是我的登录名
public class AdminLogin extends AppCompatActivity {
TextView SignUPText;
EditText AdminEmail,AdminPassword;
Button AdminLoginBtn;
FirebaseAuth mAuth;
ProgressDialog progressDialog;
@Override
public void onBackPressed() {
super.onBackPressed();
startActivity(new Intent(AdminLogin.this,MainActivity.class));
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_login);
progressDialog = new ProgressDialog(this);
mAuth = FirebaseAuth.getInstance();
SignUPText= findViewById(R.id.txtSignUp);
AdminEmail= findViewById(R.id.edtEmailAdminLogin);
AdminPassword= findViewById(R.id.edtPasswordAdminLogin);
AdminLoginBtn=findViewById(R.id.ButtonAdminLogin);
SignUPText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(AdminLogin.this,AdminSignUp.class));
}
});
AdminLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AdminLoginFunc();
//Toast.makeText(AdminLogin.this, "ADMIN LOGIN IN PROGRESS", Toast.LENGTH_SHORT).show();
}
});
}
private void AdminLoginFunc() {
String email = AdminEmail.getText().toString().trim().toLowerCase();
String password = AdminPassword.getText().toString().trim();
if (TextUtils.isEmpty(email)|| !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()){
AdminEmail.setError("enter a valid email address");
return;
}
if ((TextUtils.isEmpty(password)|| password.length() < 4 || password.length() > 10)){
AdminPassword.setError("enter a correct Password");
return;
}
progressDialog.setMessage("Please Wait...");
progressDialog.show();
mAuth.signInWithEmailAndPassword(email,password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Toast.makeText(AdminLogin.this, "Login Successfully", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(AdminLogin.this, "Unable to Login.",Toast.LENGTH_SHORT).show();
//updateUI(null);
}
progressDialog.dismiss();
}
});
}
}
答案 0 :(得分:1)
您应该尝试记录任务结果的值,并查看失败的原因。
签出
的值task.getException().getMessage()
task.getException().getErrorCode()
您可以在此处看到错误代码 https://developers.google.com/android/reference/com/google/firebase/auth/FirebaseAuthInvalidUserException
还要确保您已从firebase身份管理控制台启用了firebase用户注册。