首页 > 解决方案 > 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;
}

我在想我也许可以使用用户文档中的时间戳来做到这一点。但这会消耗不必要的写入资源,以便在每次请求任务文档时写入用户文档。所以在我这样做之前,我想知道是否有人有更好的方法。

有任何想法吗?非常感谢!

标签: firebasegoogle-cloud-firestorefirebase-security

解决方案


没有本地解决方案,因为安全规则无法写回数据库以记录查询。

您可以改为通过后端(例如 Cloud Functions)强制访问,该后端还记录特定经过身份验证的用户的访问时间,并与每次进行比较。请注意,每次调用都会产生额外的文档读取。


推荐阅读