는 I이 Firebase JSON Datafirebase 중첩 쿼리를 사용하여 클래스의 속성 값을 설정하는 방법은 무엇입니까?
내부 OLI 참조 같은 중포 기지 데이터 구조가 "kategori"키 Kategori 참조 (-Ky0RUaYOgB6gks2t3oY)의 자식으로 동일한 값을 가지고있다 (-Ky0RUaYOgB6gks2t3oY)가있다. Oli 참조에서 모든 데이터를 검색하고 DataOli 클래스와 같은 항목을 사용하여 arraylist에 값을 설정하려고합니다.
mDbRefOli.orderByChild("nama").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childDataSnapshot : dataSnapshot.getChildren()) {
final DataOli item = new DataOli();
item.setIdOli(childDataSnapshot.getKey());
item.setNamaOli(childDataSnapshot.child("nama").getValue().toString());
mDbRefKategori.child(childDataSnapshot.child("kategori").getValue().toString()).child("nama").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
item.setKategoriOli(dataSnapshot.getValue(String.class));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mDbRefMerk.child(childDataSnapshot.child("merk").getValue().toString()).child("nama").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
item.setMerkOli(dataSnapshot.getValue(String.class));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
item.setJenisOli(Integer.parseInt(childDataSnapshot.child("jenis").getValue().toString()));
item.setHargaOli(Integer.parseInt(childDataSnapshot.child("harga").getValue().toString()));
item.setKapasitasOli(Double.parseDouble(childDataSnapshot.child("kapasitas").getValue().toString()));
mListOli.add(item);
}
mAdapterOli.notifyDataSetChanged();
mSwlOli.setRefreshing(false);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
대신 해당 키를 받고 사용자에게 표시 내가 항목에 kategori 이름을 설정하려면이 코드 item.setKategoriOli(dataSnapshot.getValue(String.class));
와 함께 Kategori 참조의 아이 (-Ky0RUaYOgB6gks2t3oY)에서 "매틱"값을 얻으려고 수업. 결국 "Matic"값을 얻을 수 없으며 대신 null 값을 얻게됩니다.
어쩌면이 문제가 발생했습니다. AS에서 처음에 항목 클래스에서 final을 정의해야하고 다른 내부 클래스에 범주 값을 설정하려고하기 때문에. 이 문제를 해결할 수 있도록 도와 주시겠습니까? 당신은이 작업을 수행 할 수
정확히 무엇을 검색 하시겠습니까? –
@PeterHaddad Oli 참조의 모든 데이터 (ID, 숫자, 카테고리, merk 등)하지만 Oli의 데이터에서 kategori 값 대신 카테고리 참조 (예 : "Matic")에서 일부 값을 가져 오려고합니다. – Yoel