Firestore - 如果文档更新不存在,则跳过文档更新,无需失败



我有一个集合

/userFeed 

当当前用户开始关注/取消关注文档时,我创建/删除文档(代表用户)。

...
/userFeed (C)
/some-followed-user (D)
-date <timestamp>
-interactions <number>

当用户点赞一个帖子时,interactions字段将被更新。但是…如果用户不关注帖子所有者怎么办?然后,我只需要跳过文档更新,而不必产生失败/错误。

const currentUserFeedRef = firestore
.collection("feeds")
.doc(currentUserId)
.collection("userFeed")
.doc(otherUserId);
const data = {
totalInteractions: admin.firestore.FieldValue.increment(value),
};
const precondition = {
exists: false, // I am trying weird things
};
if (batchOrTransaction) {
return batchOrTransaction.update(
currentUserFeedRef,
data,
precondition
);
} 

如果文档不存在,是否可以直接">跳过更新"?

如果文档不存在,是否可以"跳过更新"?

不,不像你解释的那样。Firestore更新不会静默失败。

如果您需要在更新文档之前知道它是否存在,您应该先阅读它并检查它是否存在。您可以在事务中很容易地做到这一点,并且如果您首先使用事务对象以这种方式检查,则可以确保更新不会因为文档丢失而失败。

实际上,文档中的第一个例子说明了您要做的事情。

相关内容

  • 没有找到相关文章

最新更新