Waj*_*ath 3 firebase firebase-security google-cloud-firestore
我在 firestore 有一个柜台,可以计算点赞数。我像这样增加它:
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 });
Run Code Online (Sandbox Code Playgroud)
因此,如果有人编辑源并替换increment为decrement,它将以这种方式工作。我想阻止这种情况。
如何为此编写firestore-security规则,以便该规则只允许增加而不是减少?
l1b*_*rty 10
如果你想强制递增 1:
allow update: if request.resource.data.likes == resource.data.likes + 1;
Run Code Online (Sandbox Code Playgroud)
您可以使用如下安全规则确保新值大于先前值:
allow update: if request.resource.data.likes > resource.data.likes;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,请注意FieldValue没有decrement()方法。如果要递减,则需要使用负数:
const decrement = firebase.firestore.FieldValue.increment(-1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |