我正在尝试使用Firebase电子邮件和密码身份验证来注册用户。我以前通过关注和阅读多个教程来工作。但是,现在根本没有注册。我已经检查了所有的Gradle文件和权限,但似乎并没有缺少。
它会自动转到Else语句并打印敬酒消息。这是行
else
{
progressDialog.dismiss();
Toast.makeText(RegisterActivity.this, "Could Not Register. Please Check Your Details Again And Try Again", Toast.LENGTH_SHORT).show();
}
我看不到发生了什么变化以使其失败。它们是一个正确格式的电子邮件和密码,也发送到CreateUserWitheMailandPassword。
private void registerUser() {
final String email = editTextEmail.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
// email is too short
if (TextUtils.isEmpty(email)) {
Toast.makeText(this, "Please Enter An Email Address", Toast.LENGTH_SHORT).show();
return;
}
// password to short
if (TextUtils.isEmpty(password)) {
Toast.makeText(this, "Please Enter A Password", Toast.LENGTH_SHORT).show();
return;
}
if (password.length() < 6) {
Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters", Toast.LENGTH_SHORT);
}
if (checkBox.isChecked()) {
//if validation is ok, show progress bar
progressDialog.setMessage("Registering User Please Wait");
progressDialog.show();
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
progressDialog.dismiss();
Toast.makeText(RegisterActivity.this, "Registered Sucessfully", Toast.LENGTH_SHORT).show();
finish();
startActivity(new Intent(getApplicationContext(), CreateProfileActivity.class));
} else if (!task.isSuccessful() && password.length() < 6){
progressDialog.dismiss();
Toast.makeText(RegisterActivity.this, "Could Not Register. Passwords much be at least 6 characters ", Toast.LENGTH_SHORT).show();
}
else
{
progressDialog.dismiss();
Toast.makeText(RegisterActivity.this, "Could Not Register. Please Check Your Details Again And Try Again", Toast.LENGTH_SHORT).show();
}
}
});
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
firebaseAuth = FirebaseAuth.getInstance();
if(firebaseAuth.getCurrentUser() != null)
{
finish();
startActivity(new Intent(getApplicationContext(), CreateProfileActivity.class));
}
progressDialog = new ProgressDialog(this);
buttonRegister = (Button) findViewById(R.id.buttonRegister);
editTextEmail = (EditText) findViewById(R.id.editTextEmailLogin);
editTextPassword = (EditText) findViewById(R.id.editTextPasswordLogin);
checkBox = (CheckBox) findViewById(R.id.checkBox);
textViewSignUp = (TextView) findViewById(R.id.textViewSignIn);
buttonRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerUser();
}
});
textViewSignUp.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
}
});
}
更改以下内容:
Toast.makeText(RegisterActivity.this, "Could Not Register. Please Check Your Details Again And Try Again", Toast.LENGTH_SHORT).show();
进入这个:
Toast.makeText(RegisterActivity.this, "User Authentication Failed: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
知道问题可能是什么。
根据错误,您需要检查Google Play服务是否正在运行,建议在物理设备而不是模拟器上测试该应用程序或在模拟器上下载Google Play服务,因为并非所有这些都有它。/p>