2016-11-24 39 views
0

根據數據庫,我想問一個我想要搜索電子郵件的問題,但它無法處理收到的數據。我想收到一些有價值的電子郵件已經在數據庫中或沒有。在Firebase數據庫中進行Android搜索

如何處理結果?這裏是代碼試試:

DatabaseReference reg = FirebaseReferenciak.reg; 
reg.orderByChild("email").equalTo("email", etEmail.getText().toString()).addListenerForSingleValueEvent(
    new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      Map<String, String> map = dataSnapshot.getValue(Map.class); 
      String value = map.get("name"); 
//Here is how do I check? 
      //String value = dataSnapshot.getValue(String.class); 
      dialog(value); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      dialog("error"); 
     } 
    } 
); 

感謝您的幫助!

回答

0

當您針對Firebase數據庫執行查詢時,可能會有多個結果。所以快照包含了這些結果的列表。即使只有一個結果,快照也會包含一個結果列表。

出於這個原因,你需要遍歷您在onDataChange()收到DataSnapshot的孩子:

public void onDataChange(DataSnapshot dataSnapshot) { 
    for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) { 
     String value = childSnapshot.child("name").getValue(String.class); 
     dialog(value); 
    } 
}