Я пытаюсь обновить несколько полей в разных узлах, используя Карты и Обновить дочерние элементы, однако firebase удаляет данные в соответствующих узлах и добавляет данные. Я хочу, чтобы данные были обновлены, а предыдущие данные остались прежними. Интересно, что логика работает при обновлении 2 полей в одном узле, но не при введении нескольких узлов. Пожалуйста, смотрите код ниже.
Я не пытаюсь создать новые поля, а просто обновляю 2 существующих поля, каждое в двух разных узлах одновременно. У каждого узла есть 10 разных полей, которые я хочу сохранить.
Я звоню изнутри кнопки viewholder.button (в адаптере представления переработчика)
String ref1 = "users/" + currentUserId;
String ref2 = "user_detail_profile/" + currentUserId;
HashMap<String, Object> updateFbDb1 = new HashMap<>();
updateFbDb1.put("name", "Albert Einstein");
updateFbDb1.put("score", 23);
HashMap<String, Object> updateFbDb2 = new HashMap<>();
updateFbDb2.put("claps", 55);
updateFbDb2.put("comments", 21);
HashMap<String, Object> updateFbDb3 = new HashMap<>();
updateFbDb3.put(ref1, updateFbDb1);
updateFbDb3.put(ref2, updateFbDb2);
fbDbRefRoot.updateChildren(updateFbDb3);
Это работает, но я хотел бы сделать это за один раз, чтобы слушатель успеха мог быть присоединен на всех или без него.
HashMap<String, Object> updateFbDb1 = new HashMap<>();
updateFbDb1.put("name", "Albert Einstein");
updateFbDb1.put("score", 23);
HashMap<String, Object> updateFbDb2 = new HashMap<>();
updateFbDb2.put("claps", 55);
updateFbDb2.put("comments", 21);
fbDbRefRoot.child("users").child(currentUserId).updateChildren(updateFbDb1);
fbDbRefRoot.child("user_detail_profile").child(currentUserId).updateChildren(updateFbDb2);