0
我的問題是,當onDataChange函數運行時,它不會保存添加到事件中的值。事件列表確實存在於onDataChange內,但是一旦我嘗試訪問其外側的值,它就會有更長的時間。我不太清楚如何解決這個問題。Ondatachanged完成後不保存變量值
public void saveNewEvent(String uid, String eventId, String eventName, String eventHost,String eventTime, String eventAddress, String eventImage, String eventDescription) {
savedEventsCreated = false;
events.clear();
UserEvents info = new UserEvents(eventName, eventHost, eventTime, eventAddress, eventId, eventImage, eventDescription);
savedEvents.child("savedEvents").child(eventId).setValue(info);
users.child(uid).child("eventsList").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
events.add(postSnapshot.getValue().toString());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
for (int i = 0; i < events.size(); i++)
Log.i("Info", events.get(i));
events.add(eventId);
users.child(uid).child("eventsList").setValue(events, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
if (databaseError != null) {
System.out.println("Data could not be saved " + databaseError.getMessage());
} else {
System.out.println("Data saved successfully.");
}
}
});
}
謝謝。有效。 –
如果您認爲我的回答對您有幫助,請考慮接受並投票。謝謝! –