Home > database >  Firestore v9 update specific object inside an array
Firestore v9 update specific object inside an array

Time:06-03

Hello guys I have a structure like this:

users {
  user {
    uid: "",
    apps: [
     {
      id: "",
      name: "",
      points: 0,
     },
     {
      id: "",
      name: "",
      points: 0,
     },
    ]
  }
}

I want to update for example points in the apps[0] array in firestore v9 how can I preform this I tried something like dot notation but it remove all other fields

    const db = getFirestore();
    const ref = doc(db, 'users', uid);
    const matches = await getDoc(ref);
    if (!matches.exists()) return;
    return updateDoc(ref, {
      "apps.0.points": 50
    });

also, I tried to remove the old one and add the updated one but I think this is not a good way to do this.

CodePudding user response:

  const db = getFirestore();
        const ref = doc(db, 'users', uid);
        const matches = await getDoc(ref);
        if (!matches.exists()) return;
        const docData = matches.data()
        docData.apps[0].points = 50
        return updateDoc(ref, {
          ...docData
    });
  • Related