Home > Net >  How can update new Field data to existing document without overwrite to existing data in firebase-9
How can update new Field data to existing document without overwrite to existing data in firebase-9

Time:12-02

I try to update data by adding new Field into existing data in firestore by react native expo when I try to update by setDoc() , all existing data removed and only newly update one remian How can update data into same document in firebase here my firestore data

can someone guide me how can add new Field without losing existing data in firestore.

here is my attemp by setDoc

const updateUser = async(key, value) => {
     await setDoc(doc(db,'users',user.uid), { [key]: value })
};

I try to add is new Field . how can add new field I also try as follow

 const updateUser = async(key,value)=>{
    const updateRef = doc(db, "users",value);
    await updateDoc(updateRef, {
      [key]: true
    });
   }

this is new Field I try to add enter image description here

CodePudding user response:

You can import firestore from firebase library

import firestore from '@react-native-firebase/firestore';

And then you can get the document you need

const doc = firestore().collection('Users').doc('ABC')

after that you can update your doc by function update()

  firestore()
  .collection('Users')
  .doc('ABC')
  .update({
    age: 31,
  })
  .then(() => {
    console.log('User updated!');
  });

Detailed about usage of firestore you can find in this documentation https://rnfirebase.io/firestore/usage

CodePudding user response:

You need to set option merge.

firebase 9

setDoc(doc(db, path, data.id), data, { merge: true})

firebase 8-

db.collection("cities").doc(data.id).set(data, { merge: true })

And in both of libraries you can use function updateDoc() or v8 ...doc().update()

  • Related