我正在使用firebase在android上制作一个应用程序,但遇到了:(。我想更新firebase中的某些数据,而将其他数据保留在同一“父级”中。但是当我使用ref.updateChildren()函数时我正在丢失不变的数据:(。像这里:
我在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;
}
我知道我在“结果”和“ mEvent”中没有“ mMembers”,但是我想像在"Admin firebase"中的updateChildrenAsync()函数上那样在Firebase数据库中保持不变。可能吗?
答案 0 :(得分:0)
我的朋友给我发送了一个可以解决我问题的代码,将来可能对某人有用: 在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);