2017-09-27 116 views
0

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

这里是我的代码

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

+0

请编辑您的问题并说清楚。 –

+0

@ Supradip.M对不起。我也很困惑,详细解释。 –

+0

根据我的理解,您有两个选择: - 将主题添加到您正在显示的列表中,以便仅显示当前主题。 - 其次,检查特定查询中的主题是否有值,否则返回null,并且可以从此处获取。 –

回答

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作为一个例子。您可以使用userName变量代替rexyou0831

+0

它的工作原理。谢谢 –