【发布时间】:2017-01-17 02:42:42
【问题描述】:
我正在开发一个 Android 应用程序,每次用户启动此应用程序时,它都会从该用户生成一个新的寄存器(如果不存在),更新现有数据,我的应用程序将在用户节点。
每次更新此节点时,其他所有信息都会丢失。
我的用户类
@IgnoreExtraProperties
public class User {
public String userID;
public String userName;
public String userMail;
public boolean active;
public User() {}
public User(String userID, String userName) {
this.userID = userID;
this.userName = userName;
}
public User(String userID, String userName, String userMail, boolean active) {
this.userID = userID;
this.userName = userName;
this.userMail = userMail;
this.active = active;
}
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("user_id", userID);
result.put("name", userName);
result.put("email", userMail);
result.put("active", active);
return result;
}
}
还有我的更新代码:
public class FireBaseUser {
public static String FB_REFERENCE_USER = "user";
public void updateUser(String userID, String userName, String userMail, boolean userActive) {
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference(FB_REFERENCE_USER);
User user = new User(userID, userName, userMail, userActive);
Map<String, Object> postValues = user.toMap();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put(userID, postValues);
myRef.updateChildren(childUpdates);
}
}
当我拨打myRef.updateChildren(childUpdates); 时,我所有的旧数据都会更新,而我的新孩子(我在应用期间创建的)会丢失。
【问题讨论】:
-
嗨。请发布您的数据库结构。
-
嗨,我在运行命令 myRef.updateChildren(childUpdates); 后上传了一张图片
标签: android firebase firebase-realtime-database