问题描述
我正在开发酒店管理应用程序。 我最近创建了管理员ID和密码登录页面,并为我的项目使用了Firebase数据库。 当我单击登录按钮firebaseAuth.signinwithemailandpassword或firwebaseAuth.createuserwithemailandpassword抛出nullpointer异常。 我一直在想如何解决这个问题,但无法找到解决方案。 请帮助。 我的代码如下:
private FirebaseAuth firebaseAuth;
in OncreateMethod :
firebaseAuth = FirebaseAuth.getInstance();
public void onClick(View view)
{
validate();
validateUser();
}
public void validate()
{
Adminid = AdminID.getText().toString();
Pass=Password.getText().toString();
if(Pass.isEmpty() || Pass.contains(" "))
{
Password.setError("Invalid Password");
}
else if(Adminid.isEmpty() || Adminid.contains(" ") || !Adminid.contains("@"))
{
AdminID.setError("Invalid Admin ID");
}
else
{
validateUser();
}
}
public void validateUser()
{
verifylogin.setMessage("Verifying, Please Wait");
verifylogin.show();
firebaseAuth.createUserWithEmailAndPassword(Adminid,Pass).addOnCompleteListener(LoginActivity.this,new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task)
{
if(task.isSuccessful())
{
verifylogin.dismiss();
Toast.makeText(LoginActivity.this,"Login Successful",Toast.LENGTH_LONG).show();
FirebaseUser user = firebaseAuth.getCurrentUser();
}
else
{
Toast.makeText(LoginActivity.this,"Login Failed",Toast.LENGTH_LONG).show();
}
}
});
}
1楼
欢迎使用StackOverflow,我看到了您的代码,但没有发现任何可见的错误。 因此,我建议您在Firebase控制台中检查您的项目是否启用了“电子邮件/密码”,该方法位于“身份验证”>“访问方法”中,您可以验证一下,如果不启用,请仅单击铅笔进行编辑。 请告诉我这是否有效。
PS在onClick方法中,您调用validateUser();。 和validate()但内部的validate()也可以称为(validateUser();)。