3

在 Firestore 安全设置中,您可以设置写入/读取数据的条件。

目前我有这件作品:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read: if request.auth != null && request.time < 
                resource.data.timeCreated + duration.value(1, 'h');
      allow write: if request.auth != null;
    }
  }
}

现在我想限制写作;用户应该只能每 5 分钟发送一次数据。我怎样才能做到这一点?

4

1 回答 1

1

没有本地方法可以做到这一点。

您不能以任何未被轻易绕过的方式为未登录用户提供服务。不过,您可以使用 Cloud Functions 为已登录的用户实现此目的。

每个用户都有一个配置文件,其中包含他们下次可以写入的时间,以及接下来要写入的文档的 ID。

  • 使用写入规则检查 id 是否不存在并且 >= 允许的时间
  • 在写入时使用 Cloud Functions 使用新的允许时间和唯一 ID 更新用户配置文件文档,以便下次写入
于 2017-10-07T21:51:55.193 回答