Sean LEE
Sean LEE

Reputation: 23

android studio/firestore - how to add a new FIELD to existing document WITHOUT deleting old data

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:

Firestore structure

Upvotes: 0

Views: 608

Answers (1)

Frank van Puffelen
Frank van Puffelen

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

Related Questions