我试图在数据库中的下面添加一个新的孩子,但是每次我添加一个新孩子时,其他孩子都会被覆盖。
我知道setValue()将覆盖子级。我不想使用Push(),因为这将创建另一个我不想要的ID,因为我希望用户能够进入数据库并手动添加新的userID:true。
mDatabase = FirebaseDatabase.getInstance().getReference("readUsers")
HashMap<String, String> readUser = new HashMap<>();
readUser.put(userId, "true");
mDatabase.setValue(readUser).addOnCompleteListener(new OnCompleteListener<Void>() {
是否有另一种不使用push()来添加新子代的方法?
最佳答案
您可以使用updateChildren()
:
mDatabase = FirebaseDatabase.getInstance().getReference("readUsers")
Map<String, Object> updates = new HashMap<String,Object>();
updates.put(userId, "true");
mDatabase.updateChildren(updates);
从文档:
Update specific fields
要同时写入节点的特定子节点而不覆盖其他子节点,请使用
updateChildren()
方法。