繁体   English   中英

如果文档存在,则 Firestore 增量值,否则设置它

[英]Firestore increment value if document exists, otherwise set it

我正在寻找一个带有 Firestore 文档的 upsert,例如:

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覆盖

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM