我正在構(gòu)建一個(gè)需要從某個(gè)父節(jié)點(diǎn)檢索所有子節(jié)點(diǎn)的應(yīng)用程序,并希望對(duì)檢索到的每個(gè)子節(jié)點(diǎn)執(zhí)行方法調(diào)用。這是我當(dāng)前的數(shù)據(jù)庫(kù):我想調(diào)用一個(gè)孩子的所有孩子,conradjr例如“ranniecardino15”,它應(yīng)該將它存儲(chǔ)到一個(gè)變量然后執(zhí)行一個(gè)方法調(diào)用。我怎樣才能做到這一點(diǎn)?我已經(jīng)編寫(xiě)了這樣的代碼,但方法調(diào)用“getCurrentLocation”僅在檢索到的最后一個(gè)孩子上執(zhí)行。 public void getCurrentChildUser() { DatabaseReference getuser = FirebaseDatabase.getInstance().getReference().child("Children"); getuser.child(user).orderByChild("CurrentLocation").addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) { childuser = childSnapshot.getKey(); if (childuser != null){ getCurrentLocation(); } } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } });}public void getCurrentLocation(){ DatabaseReference getuser = FirebaseDatabase.getInstance().getReference().child("Children"); getuser.child(user).child(childuser).child("CurrentLocation").addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if(dataSnapshot != null){ currentloc = dataSnapshot.getValue(String.class); System.out.println("Current Location: "+currentloc); String split[] = currentloc.split(","); lat1 = Double.parseDouble(split[0]); lng1 = Double.parseDouble(split[1]); System.out.println("Current Latitude: "+lat1+" and Current Longitude: "+lng1); getSavedLocation(); } } @Override public void onCancelled(DatabaseError databaseError) {} });}請(qǐng)幫助我:) 提前致謝:)
1 回答

忽然笑
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
要解決此問(wèn)題,您需要將getCurrentLocation()
方法的聲明從:
public void getCurrentLocation(){}
到
public void getCurrentLocation(String childuser){}
現(xiàn)在你需要onDataChange()
像這樣從方法內(nèi)部調(diào)用這個(gè)方法:
getCurrentLocation(childuser);
看,我已將 thechilduser
作為參數(shù)傳遞給 the,getCurrentLocation()
因此可以以正確的方式使用它。
添加回答
舉報(bào)
0/150
提交
取消