是否可以防止删除特定集合下的文件?
Is it possible to prevent the deletion of the documents under specific collection?
我在名为 Users
的集合中有很多帐户,我想防止删除文档(帐户),如何使用安全规则来做到这一点?
此外,我想问一下是否可以防止通过 Firebase Console
删除用户集合中的任何文档?
我不需要删除任何文档,管理员也不需要删除
编辑规则历史记录
//Before pusblish the question
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
//Current
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /USERS/{userId} {
allow delete: if false;
}
}
}
一个write
规则可以分解为create
、update
和delete
。您可以使用这些安全规则防止删除文档:
match /users/{userId} {
allow delete: if false;
}
查看安全规则文档 granular operations。
您无法阻止从 Firebase 控制台删除文档(但最好首先阻止任何未经授权的人访问)。
您之前的安全规则不安全,允许任何人 read/update/delete 任何集合。 updates 规则只规定不允许任何人删除users 集合中的文档,但对于读取操作和其他集合没有条件。您应该如下所示明确定义它们:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /USERS/{userId} {
allow read: true;
allow delete: if false;
}
match /Transactions/{txnId} {
allow read, write: if true;
}
}
}
以上规则允许任何人读取用户集合但不能删除任何文档和 read/write 交易集合中的任何文档。我建议检查 Get to know Cloud Firestore - Security Rules 并根据您的用例编写安全规则。
我在名为 Users
的集合中有很多帐户,我想防止删除文档(帐户),如何使用安全规则来做到这一点?
此外,我想问一下是否可以防止通过 Firebase Console
删除用户集合中的任何文档?
我不需要删除任何文档,管理员也不需要删除
编辑规则历史记录
//Before pusblish the question
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
//Current
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /USERS/{userId} {
allow delete: if false;
}
}
}
一个write
规则可以分解为create
、update
和delete
。您可以使用这些安全规则防止删除文档:
match /users/{userId} {
allow delete: if false;
}
查看安全规则文档 granular operations。
您无法阻止从 Firebase 控制台删除文档(但最好首先阻止任何未经授权的人访问)。
您之前的安全规则不安全,允许任何人 read/update/delete 任何集合。 updates 规则只规定不允许任何人删除users 集合中的文档,但对于读取操作和其他集合没有条件。您应该如下所示明确定义它们:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /USERS/{userId} {
allow read: true;
allow delete: if false;
}
match /Transactions/{txnId} {
allow read, write: if true;
}
}
}
以上规则允许任何人读取用户集合但不能删除任何文档和 read/write 交易集合中的任何文档。我建议检查 Get to know Cloud Firestore - Security Rules 并根据您的用例编写安全规则。