70 votes

FireStore crée un document s'il n'existe pas

Je souhaite mettre à jour un document comme celui-ci:

 db.collection('users').doc(user_id).update({foo:'bar'})

Cependant, si le doc user_id n'existe pas, le code ci-dessus générera une erreur. Par conséquent, comment dire à Firestore de créer l'étudiant s'il n'existe pas, en d'autres termes, se comporter comme ceci:

 db.collection('users').doc(user_id).set({foo:'bar'})

13voto

Dale Zak Points 90

Si vous avez besoin d'éléments tels que les created et updated , vous pouvez utiliser cette technique:

 let id = "abc123";
let email = "john.doe@gmail.com";
let name = "John Doe";
let document = await firebase.firestore().collection("users").doc(id).get();
if (document && document.exists) {
  await document.ref.update({
    updated: new Date().toISOString()
  });
}
else {
  await document.ref.set({
    id: id,
    name: name,
    email: email,
    created: new Date().toISOString(),
    updated: new Date().toISOString()
  }, { merge: true });
}

Cela créera le document s'il n'existe pas avec les created et updated , mais ne changera que l'horodatage updated s'il existe.

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