Firebase: Transaction read and update multiple documents

后端 未结 2 2020
小蘑菇
小蘑菇 2021-01-21 20:16

With this code I can read and update single document in the transaction.

// Update likes in post
var docRef = admin
  .firestore()
  .collection(\"posts\")
  .do         


        
2条回答
  •  执笔经年
    2021-01-21 21:03

    To update multiple documents in a transaction, you call t.update() multiple times.

    let promise = await admin.firestore().runTransaction(transaction => {
      var post = transaction.get(docRef);
      var anotherPost = transaction.get(anotherDocRef);
    
      if (post.exists && anotherPost.exists) {
        var newLikes = (post.data().likes || 0) + 1;
        await transaction.update(docRef, { likes: newLikes });
        newLikes = (anotherPost.data().likes || 0) + 1;
        await transaction.update(anotherdocRef, { likes: newLikes });
      }
    })
    

    See https://firebase.google.com/docs/firestore/manage-data/transactions#transactions

提交回复
热议问题