如何检查orderbychild值是否存在?

时间:2017-09-27 04:59:14

标签: android firebase firebase-realtime-database

我通过搜索在tlocation中以username保存的主题来成功获取用户名。但是,如果主题完全不存在于所有用户名下,那么我将如何检测主题是否存在于tlocation中呢?如果您有任何想法,请分享给我,谢谢。

这是我的代码

tref.orderByChild("subject").equalTo(ssubject).
addValueEventListener(new ValueEventListener() {
 //ssubject is user selected subject
 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {

    for (final DataSnapshot u: dataSnapshot.getChildren()) {
        if(u.child("subject").getValue().equals(ssubject)){

        // do some code here 

        }else{

          searchuserlist.setEmptyView(findViewById(R.id.stv));

        }

这是我的数据库结构 enter image description here

1 个答案:

答案 0 :(得分:1)

这是验证subject是否存在的方法:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("tlocation").child("rexyou0831");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if(dataSnapshot.child("subject").exists()) {
            //do something
        } else {
            //do something else
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
userRef.addListenerForSingleValueEvent(eventListener);

我以rexyou0831为例。您可以使用rexyou0831变量代替userName