Обновите некоторые данные в Firebase и оставьте без изменений другие данные в том же «родительском». - PullRequest
0 голосов
/ 17 октября 2018

Я делаю приложение на android с firebase, и я застрял :(. Я хочу обновить некоторые данные в firebase и оставить без изменений другие в том же «родительском». Но когда я использую функцию ref.updateChildren ()Я теряю неизмененные данные :(. Как здесь:

Начальные данные (до изменения) - данные, которые я не хочу изменять, отмечены синим Start data (before change) - The data that I don't want to change is marked blue

Данные о завершении действия редактора: enter image description here

Мой код в EditorActivity:

[...]
            mEvent.setPlace(placeString);
            mEvent.setDate(dateString);
            mEvent.setType(mType);
            mEvent.setWindPower(wind_power);
            mEvent.setWaveSize(wave_size);
            mEvent.setConditions(mConditions);
            mEvent.setComment(commentString);

            Map<String, Object> eventValues = mEvent.toMap();
            Map<String, Object> childUpdates = new HashMap<>();
            childUpdates.put("/"+mEvent.getId(),eventValues);

            mEventsDatabaseReference.updateChildren(childUpdates); [...]

В классе Event.class:

@Exclude
public Map<String, Object> toMap() {
    HashMap<String, Object> result = new HashMap<>();
    result.put("id", mId);
    result.put("mUsername", mUsername);
    result.put("place", mPlace);
    result.put("date", mDate);
    result.put("windPower", mWindPower);
    result.put("waveSize", mWaveSize);
    result.put("type",mType);
    result.put("comment",mComment);
    result.put("conditions",mConditions);
    result.put("photoUrl",mPhotoUrl);
    return result;
}

Я знаю, что у меня нет "mMembers" в "result" и "mEvent", но я хочу оставить их неизменными в базе данных firebase, как в функции updateChildrenAsync () из "Admin firebase" . Возможно ли это?

1 Ответ

0 голосов
/ 18 октября 2018

Мой друг прислал мне код, который решает мою проблему, он может пригодиться кому-то в будущем: в EditorActivity:

            mEvent.setPlace(placeString);
            mEvent.setDate(dateString);
            mEvent.setType(mType);
            mEvent.setWindPower(wind_power);
            mEvent.setWaveSize(wave_size);
            mEvent.setConditions(mConditions);
            mEvent.setComment(commentString);

            Map<String, Object> eventValues = mEvent.toMap();
            mEventsDatabaseReference.child(mEvent.getId()).updateChildren(eventValues);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...