我试图在数据库中的下面添加一个新的孩子,但是每次我添加一个新孩子时,其他孩子都会被覆盖。

java - 如何添加新的 child 而不覆盖其他 child-LMLPHP

我知道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()方法。

08-28 15:36