我想知道这段代码有什么问题?它与之前版本的Android Studio一起运行良好,但新更新可能会有所改变。我想确认checkUserExists方法是否正确。
public void loginButtonClicked(View view) {
String email = loginEmail.getText().toString().trim();
String pass = loginPass.getText().toString().trim();
if (!TextUtils.isEmpty(email) && !TextUtils.isEmpty(pass)) {
mAuth.signInWithEmailAndPassword(email, pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
checkUserExists;
}
}
});
}
}
public void checkUserExists() {
final String user_id = mAuth.getCurrentUser().getUid();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(user_id)) {
Intent loginIntent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(loginIntent);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
答案 0 :(得分:0)
首先,您需要调用checkUserExists
中的方法onComplete()
,如下所示:
checkUserExists();
并不像你现在那样。
第二次使用addListenerForSingleValueEvent
代替addValueEventListener
。