Firebase에서 노드의 모든 자식을 포함해야하는 맵을 반환하는 메소드를 작성하려고하지만 콜백을 사용해야하므로이 메소드는 빈 맵을 반환합니다.Firebase 노드의 모든 자식을 Map으로 반환하는 메소드
public Map<Date, String> getChildrenAsMap(String nodeId) {
DatabaseReference refernce= dbRoot.child("childName").child(nodeId);
final Map<Date, String> childMap = new HashMap<>();
refernce.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<Date, String> data = (Map<Date, String>) dataSnapshot.getValue();
for (Map.Entry<Date, String> entry : data.entrySet()) {
childMap .put(entry.getKey(), (String) entry.getValue());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w("TAG", "onCancelled", databaseError.toException());
}
});
return childMap;
}
이것은 작동하지 않습니다. – creativecreatorormaybenot
왜 그렇게 생각하니? –
'childMap'이 범위를 벗어 났으며 return 문은 비동기 이벤트를 기다리지 않습니다. – creativecreatorormaybenot