firebase - Firestore 规则:允许或限制请求仅每 24 小时一次?
问题描述
是否有一种本机或有效的方法来限制用户每 24 小时仅从集合中加载一次文档?
//Daily Tasks
//User should have only read rights
//User should only be able to read one document every 24h
match /tasks/{documents} {
allow read: if isSignedIn() && request.query.elapsedHours > 24;
}
我在想我也许可以使用用户文档中的时间戳来做到这一点。但这会消耗不必要的写入资源,以便在每次请求任务文档时写入用户文档。所以在我这样做之前,我想知道是否有人有更好的方法。
有任何想法吗?非常感谢!
解决方案
没有本地解决方案,因为安全规则无法写回数据库以记录查询。
您可以改为通过后端(例如 Cloud Functions)强制访问,该后端还记录特定经过身份验证的用户的访问时间,并与每次进行比较。请注意,每次调用都会产生额外的文档读取。
推荐阅读
- python - 匹配所有“错误:”但不匹配“错误:0”
- c++ - 为什么平台之间的 inptr_t 行为不同?
- mysql - Codeigniter MySQL 按会话数据过滤
- java - 无法在 IntelliJ 的 Kotlin 项目中从模块创建 Jar
- python - 如何读取/导入/加载许多 .mat 文件以在 python 中进行训练?
- javascript - 如何使用 React 检查远程源是否可用?
- reactjs - 使用反应钩子聚焦输入
- javascript - 云功能未在数据库写入时触发
- html - 如何在重新加载时保持引导表的滚动位置?
- javascript - 如何从画布前的变量中写入文本?