2017-09-27 223 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

它的工作原理。謝謝 –