81 votes

Cloud Firestore : Mise à jour des champs dans les objets imbriqués avec une clé dynamique

En suivant la documentation officielle de firestore :

{
    name: "Frank",
    favorites: { food: "Pizza", color: "Blue", subject: "recess" },
    age: 12
}

// To update favorite color:
db.collection("users").doc("frank").update({
    "favorites.color": "Red"
})

Je voudrais utiliser une clé dynamique au lieu d'une couleur.

db.collection("users").doc("frank").update({
    "favorites[" + KEY + "].color": true
});

ce n'est bien sûr pas possible et cela entraînera une erreur.

J'ai essayé de faire ça :

db.collection("users").doc("frank").update({
    favorites: {
        [key]: {
            color": true
        }
    }
});

La mise à jour se fait avec la bonne clé mais malheureusement, elle écrase les autres clés (elles sont supprimées).

0voto

Fenkan Points 1

Vous pouvez utiliser

var auxKey = "history." + someVar;
var dataToUpdate = {
   [auxKey]: "new data generated"
};
db.collection("users").doc("frank").update(dataToUpdate);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X