firebase FieldValue.increment的Firestore安全规则

v440hwme  于 2023-03-31  发布在  其他
关注(0)|答案(2)|浏览(107)

我在firestore中有一个计数器,count喜欢它。我像这样增加它:

const db = firebase.firestore();
const increment = firebase.firestore.FieldValue.increment(1);

// Document reference
const doc = db.collection('coll').doc('doc');

// Update read count
doc.update({ likes: increment });

因此,如果有人编辑了源代码,并将increment替换为decrement,它将以这种方式工作。
我怎样才能为此编写一个firestore-security规则,使该规则只允许递增而不允许递减?

4ioopgfo

4ioopgfo1#

如果你想增加1:

allow update: if request.resource.data.likes == resource.data.likes + 1;
p1tboqfb

p1tboqfb2#

您可以使用Security Rule确保新值大于前一个值,如下所示:

allow update: if request.resource.data.likes > resource.data.likes;

顺便说一句,注意FieldValue没有decrement()方法。如果你想递减,你需要使用一个负数:

const decrement = firebase.firestore.FieldValue.increment(-1);

相关问题