Firestore规则:每24小时仅允许或限制一次请求?

问题描述 投票:0回答:1

是否存在一种原生或有效的方法来限制用户每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;
}

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

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

firebase google-cloud-firestore firebase-security-rules
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.