如何搜索设置Firebase中是否存在值?

时间:2018-02-21 11:47:37

标签: java android firebase firebase-realtime-database

我想知道这段代码有什么问题?它与之前版本的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) {

        }
    });
}
}

1 个答案:

答案 0 :(得分:0)

首先,您需要调用checkUserExists中的方法onComplete(),如下所示:

checkUserExists();

并不像你现在那样。

第二次使用addListenerForSingleValueEvent代替addValueEventListener