首页 > 解决方案 > 限制用户在 Google Cloud Firestore 中存储的文档数量

问题描述

如果访问 Cloud Firestore 客户端,是否有办法限制用户可以创建的文档数量(每个集合)?

例如,如果我们有一个 Firestore 规则

match /users/{userId}/sites/{siteName} {
    allow read, write: if request.auth != null && request.auth.uid == userId;
}

,这允许经过身份验证的用户创建无限数量的文档/users/<UID>/sites/*。这是可以限制的吗?我们不能使用get(/databases/$(database)/documents/users/$(userId)/posts),因为get只将文档而不是集合作为其参数(Firebase 参考)并返回一个Resource 对象

对于任何给定的文档,我知道我们可以通过request.resource.data对象限制用户设置的数据。此外,这很容易在服务器端进行(尽管它需要两个网络请求而不是一个)。

标签: firebasegoogle-cloud-firestore

解决方案


推荐阅读