【问题标题】:Stop counter min value at 0 when using Firstore Fieldvalue increment function使用 Firestore 字段值增量功能时将计数器最小值停止为 0
【发布时间】:2020-07-08 17:22:10
【问题描述】:

在使用 Firstore Fieldvalue 增量而不使用事务时,有什么方法可以阻止我的数字类型字段值变为负数(最小 0)?

this.afs.doc('path').update({count: firebase.firestore.FieldValue.increment(11)});

如果字段计数的值为 0,它将变为 -1。

【问题讨论】:

    标签: firebase ionic-framework google-cloud-firestore


    【解决方案1】:

    事务实际上是正确的方法,因为您可以检查值的范围。 FieldValue.increment() 做不到。

    但是,如果您想更新以在提供无效值时简单地失败,您可以使用Firestore security rulesvalidate the field value。这些规则仅在 Web 和移动客户端直接访问时才有效。它们不适用于后端代码。

    【讨论】:

    • 谢谢道格。我可以使用安全规则并验证字段,但是当管理员从云功能发生数据更新时,规则不会阻止它。所以我必须在那里使用事务。
    • 是的,你需要一笔交易。
    猜你喜欢
    • 1970-01-01
    • 2023-04-11
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多