문제가 있습니다. 표 etd
유형 Etudiant
의 객체를 포함하지만 난 리스너에서 이러한 개체를 반환 할 수 없습니다Firebase에서 valueEventListenener의 값을 반환 함
ValueEventListener valueEventListener = mref.addValueEventListener(new ValueEventListener() {
Etudiant etud = new Etudiant();
public Etudiant getEtud() {
return etud;
}
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int i = 0;
Groupe groupe = new Groupe();
Object[] objTab = new Object[100];
// Toast.makeText(MainActivity.this,String.valueOf(tabdesobjet(objTab,Groupe.class,dataSnapshot,i)),Toast.LENGTH_LONG).show();
int j = 0;
for (DataSnapshot map: dataSnapshot.getChildren()) {
if (!map.getKey().equals("id") && !map.getKey().equals("idCycle") && !map.getKey().equals("idFilliere") && !map.getKey().equals("idPromo") && !map.getKey().equals("idSection") && !map.getKey().equals("nbEtudiants") && !map.getKey().equals("designation")) {
objTab[i] = map.getValue();
i++;
}
}
Etudiant[] etd = new Etudiant[i];
for (j = 0; j < i; j++) {
HashMap < String, Object > hashMap = (HashMap < String, Object >) objTab[j];
etd[j] = new Etudiant();
etd[j].setAttributs(hashMap);
}
Log.v("Test", "Etudiant = " + etd[0].getNom());
etud = etd[0];
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
같은 것을 사용할 수 있습니다. 편집 문제가 있습니까? 또는 런타임 문제? – Rob
데이터가 Firebase 데이터베이스에서 비동기 적으로로드됩니다. 값을 반환하려고 할 때,'onDataChange'의 코드는 아직 실행되지 않았습니다. 값을 반환하려고하는 대신 * onDataChange에 * 값 *을 사용하는 코드를 이동합니다. http://stackoverflow.com/questions/41372562/returning-a-value-in-firebase-ondatachange –
감사합니다.하지만 내 프로그램이 너무 커서 실제 응용 프로그램이므로 차단되었습니다. 도와주세요. – hichem