我有这个代码,用户输入他的凭据并登录。
public class LoginActivity extends AppCompatActivity {
private static final String TAG = LoginActivity.class.getSimpleName();
private FirebaseAuth mAuth;
private Toolbar mToolbar;
private TextInputEditText mLoginEmail;
private TextInputEditText mLoginPassword;
private Button mLoginBtn;
private Button mForgotPass;
private ProgressDialog mProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mToolbar = findViewById(R.id.login_toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("Login");
mAuth = FirebaseAuth.getInstance();
mProgress = new ProgressDialog(this);
mLoginEmail = (TextInputEditText)findViewById(R.id.login_email);
mLoginPassword = (TextInputEditText)findViewById(R.id.login_password);
mLoginBtn = (Button)findViewById(R.id.login_create_btn);
mLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String email = mLoginEmail.getText().toString();
String pass = mLoginPassword.getText().toString();
if(!TextUtils.isEmpty(email) || !TextUtils.isEmpty(pass)){
mProgress.setTitle("Logging in");
mProgress.setMessage("Please wait while we check your credentials");
mProgress.setCanceledOnTouchOutside(false);
mProgress.show();
loginUser(email,pass);
}
}
});
mForgotPass = (Button)findViewById(R.id.login_forgot_password);
mForgotPass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(LoginActivity.this,ForgotPasswordActivity.class);
startActivity(i);
}
});
}
private void loginUser(final String email, final String pass) {
mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
mProgress.dismiss();
sendToMain();
} else {
mProgress.hide();
Toast.makeText(LoginActivity.this, "Can not login", Toast.LENGTH_SHORT).show();
Log.d(TAG, String.valueOf(task.getException()));
}
}
});
}
private void sendToMain() {
Intent mainIntent = new Intent(LoginActivity.this,MainActivity.class);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(mainIntent);
finish();
}
}
要实现登录程序,请按上面的说法调用 signInWithEmailAndPassword(电子邮件,通行证)方法。仅仅为了验证目的,我想要祝酒,你应该填写电子邮件和密码字段。就像现在一样,当我点击登录按钮时出现异常。如何解决?
这是例外。
at com.google.android.gms.common.internal.zzbq.zzgm(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.signInWithEmailAndPassword(Unknown Source)
at theo.tziomakas.news.LoginActivity.loginUser(LoginActivity.java:90)
at theo.tziomakas.news.LoginActivity.access$300(LoginActivity.java:22)
at theo.tziomakas.news.LoginActivity$1.onClick(LoginActivity.java:70)
谢谢,
西奥。
答案 0 :(得分:1)
发现您的错误,如下:
if(!TextUtils.isEmpty(email) || !TextUtils.isEmpty(pass))
应该是&amp;&amp;而不是||:
if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(pass))
您希望两者都不为空来呼叫您的登录信息。