Firestore在更新后获取Field.increment的值而不读取文档数据

Chr*_*ras 8 firebase google-cloud-firestore

有没有一种方法可以检索使用更新的文档字段的更新值firestore.FieldValue.increment而不询问文档?

var countersRef = db.collection('system').doc('counters');

await countersRef.update({
    nextOrderCode: firebase.firestore.FieldValue.increment(1)
});

// Get the updated nextOrderCode without asking for the document data?
Run Code Online (Sandbox Code Playgroud)

这与成本无关,而是为了可靠性。例如,如果我想创建一个为每个订单增加的代码,则不能保证如果>= 2订单同时发生,如果我在文档更新解析后立即读取增量值,则将具有不同的代码,因为如果>= 2写入发生在之前第一次阅读时,至少有 2 个文档将具有相同的代码,即使它们nextOrderCode具有适当的提前增量。

Dou*_*son 6

更新

现在可以了,检查其他答案


这是不可能的。如果您想知道该值,您必须阅读更新后的文档。

如果您需要控制数字的值以防止其无效,则必须使用事务来代替以确保增量不会写入无效值。FieldValue.increment()对于这种情况来说不是一个好的选择。