Firebase:用于生产的 Firestore 安全规则
Firebase: Firestore security rule for production
下面是我试图在生产中实施的示例安全代码,但它一直抛出以下错误。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if request.time < timestamp.date(2022, 4, 13);
}
}
}
错误:
Missing or insufficient permissions.
我只想要一个用于生产的“只读”数据库。我在这里错过了什么?
allow read: if request.time < timestamp.date(2022, 4, 13);
只有当当前时间在昨天的 2022 年 4 月 13 日之前时,此语句 returns 才成立。
match /{doc=**} {
allow read: if true;
}
您可以切换到上面显示的规则以始终允许读取操作。
但是,这些规则允许 Internet 上的任何人读取您的数据库(对于此特定用例应该没问题),但如果您还有任何其他用例,则应编写安全规则。
在 Firebase 的 Youtube 频道上的 documentation. Also checkout Get to know Cloud Firestore | Security Rules 视频中查看有关安全规则的更多信息。
如果您想要一个 read-only 数据库,那么您可能正在寻找这样的规则集:
allow read;
allow write: if false;
另外,给你的用户最少的权限,这只是一个额外的提示。这意味着,在这种情况下,您本身可能不想授予您的用户对整个数据库的读取权限。
因此,只允许读取或写入特定集合或文档始终是更好的选择。
下面是我试图在生产中实施的示例安全代码,但它一直抛出以下错误。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if request.time < timestamp.date(2022, 4, 13);
}
}
}
错误:
Missing or insufficient permissions.
我只想要一个用于生产的“只读”数据库。我在这里错过了什么?
allow read: if request.time < timestamp.date(2022, 4, 13);
只有当当前时间在昨天的 2022 年 4 月 13 日之前时,此语句 returns 才成立。
match /{doc=**} {
allow read: if true;
}
您可以切换到上面显示的规则以始终允许读取操作。
但是,这些规则允许 Internet 上的任何人读取您的数据库(对于此特定用例应该没问题),但如果您还有任何其他用例,则应编写安全规则。
在 Firebase 的 Youtube 频道上的 documentation. Also checkout Get to know Cloud Firestore | Security Rules 视频中查看有关安全规则的更多信息。
如果您想要一个 read-only 数据库,那么您可能正在寻找这样的规则集:
allow read;
allow write: if false;
另外,给你的用户最少的权限,这只是一个额外的提示。这意味着,在这种情况下,您本身可能不想授予您的用户对整个数据库的读取权限。
因此,只允许读取或写入特定集合或文档始终是更好的选择。