Firestore增量值(如果存在),否则进行设置

时间:2020-05-15 12:18:06

标签: javascript firebase google-cloud-firestore

我正在尝试使用以下Firestore文档进行升级:

gameDb
        .collection("player-scores")
        .doc(playerId)
        .update({ score: firebase.firestore.FieldValue.increment(1) });

如果playerId文档存在,则更新分数,否则将其设置为1。

如果我这样做

gameDb
        .collection("player-scores")
        .doc(playerId)
        .set({ score: firebase.firestore.FieldValue.increment(1) });

它可以按我的意愿工作,并将分数设置为1或递增的值,但是递增的分数会被1覆盖

1 个答案:

答案 0 :(得分:5)

通过使用option方法的{merge: true} set(),它应该可以解决问题:

gameDb
        .collection("player-scores")
        .doc(playerId)
        .set({ score: firebase.firestore.FieldValue.increment(1) }, {merge: true});

如果文档不存在,则将该字段初始化为1;如果存在,则将其递增。