0
Firebase 데이터베이스의 항목 목록을 업데이트하는 방법. 나는 새 목록을 설정하기 위해 setValue를 사용할 수 있지만 목록의 한 항목을 추가하는 방법을 찾지 못했습니다. (나는 목록의 모든 항목을 하나의 항목 만 업데이트하도록 보내지 않습니다.)Firebase에서 항목 목록을 업데이트하는 방법은 무엇입니까?
이 예제에서는이 작업을 시도하지만 ref.updateChildren 메서드가 올바르게 작동하지 않습니다. 그것은 저에게 databaseReference를 보여 주지만 Firebase에 어떤 변화도 보이지 않습니다.
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("apps");
for (final App app : apps) {
ref.child(app.getFirebaseKey()).addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!dataSnapshot.exists()) {
ref.setValue(app.getFirebaseValue());
} else {
//check need add my phone or no.
FirebaseApp firebaseApp = dataSnapshot.getValue(FirebaseApp.class);
String myPhone = app.getFirebaseValue().getPhones().get(0);
if (firebaseApp.getPhones().contains(myPhone)) {
//do nothing
} else {
firebaseApp.getPhones().add(myPhone);
Map<String, Object> updates = new HashMap<String, Object>();
updates.put("phones", firebaseApp.getPhones());
ref.updateChildren(updates, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
if (databaseError == null) {
Log.i(TAG, "databaseReference=" + databaseReference);
} else {
Log.i(TAG, "databaseError=" + databaseReference);
}
}
});
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}