Reputation: 23
How do I add a new field to existing document without deleting old data?
I want to add a new user to the very right section (image attached below) under "users", where orgcode is "testcode".
What I have so far are:
// obj to add
Map<String, Object> userForOrgs = new HashMap<>();
userForOrgs.put("users", username);
// TODO: add user to /orgs
mDb.collection("organizations").whereEqualTo("orgcode", _user.getOrgcode())
.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for(QueryDocumentSnapshot doc: task.getResult()){
doc.getReference().set(userForOrgs);
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
Firestore structure:
Upvotes: 0
Views: 608
Reputation: 599716
To update an existing document, call update
instead of set
.
for(QueryDocumentSnapshot doc: task.getResult()){
doc.getReference().update(userForOrgs);
}
Also see the Firebase documentation on updating an existing document.
Upvotes: 1