是否存在一种原生或有效的方法来限制用户每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;
}
我想我可以使用用户文档中的时间戳来做到这一点。但这会消耗不必要的写入资源,以便在每次请求任务文档时写入用户文档。所以在我这样做之前,我想知道是否有人有更好的方法。
有任何想法吗?非常感谢!
没有本机解决方案,因为安全规则无法写回数据库来记录查询。
您可以通过后端(例如云功能)强制访问,后端也记录特定经过身份验证的用户的访问时间,并且每次都与之进行比较。请注意,每次调用都会产生额外的文档读取。