2017-09-20 2 views
0

내 데이터는이 같은 것입니다 다음과 같이 데이터를 필터링하면 null이됩니다.중포 기지 - 다트 데이터 필터링은

DatabaseReference ref = database().ref('members').orderByValue().equalTo("alpha", "type"); 
ref.onValue.listen((e) { 
    var members = e.snapshot.val(); 
}); 

"유형" "알파"인 객체 만 가져 오는 방법은 무엇입니까?

답변

1

귀하의 members 참조가 개체의 List에 해당하고, "alpha" 그래서 당신의 orderByValue().equalTo() 쿼리가 null을 반환처럼 List의 직접적인 아이의 아무도 문자열 없습니다. 전달중인 "type" 인수는 하위 개체의 키 ("type", "name")가 아닌 목록의 인덱스 (0,,등)를 검색합니다.

대신 orderByChild()를 사용할 수 있습니다

DatabaseReference ref = database().ref().child('members').orderByChild("type").equalTo("alpha"); 

당신이 찾을 수있는 알파가 처음에없는 경우, 거기에 약간의 구멍이있는 List를 얻을 :

[{name: John, type: alpha}, null, {name: Jane, type: alpha}] 

당신에게

members = new List<Object>.from(members)..remove(null); 
을 사용하여 null 값을 삭제할 수 있습니다.
관련 문제