【问题标题】:Can you send data with a firestore read request?您可以使用 Firestore 读取请求发送数据吗?
【发布时间】:2020-05-12 17:39:41
【问题描述】:

我想让未登录的用户可以选择通过他们收到的令牌查看他们的数据,该令牌会在一段时间后过期。

令牌创建和发送部分已完成,现在我看到两个选项:在函数中执行所有操作或使用 firestore 规则。 不过规则会更好,因为直接读取数据库更快。

例如,我有一个用户集合,其中的用户如下所示:

{
   name: 'test',
   token: '1234',
   expiresAt: <someTimeInFuture>
}

我的规则如下所示:

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow get: request.auth.uid == userId;
      allow update: request.auth.uid == userId;

      allow list: if false; 
      allow create, delete: if false;

    }
  }
}

有没有办法扩展get 规则,以便在读取请求中发送该令牌的用户可以查看数据。或者更好的说法是:我可以将令牌与我的读取请求一起发送,以便我可以在规则中查看它吗?

请记住,自定义声明不是一个选项,因为用户没有登录。

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-security


    【解决方案1】:

    安全规则不支持客户端可以简单地在验证请求中发送自定义数据的想法。这实际上根本不是“安全的”。这就像要求某人提供可以在互联网上任何地方共享的密码。您将需要一个后端端点来执行此操作,但请记住,它也会有相同的安全问题。

    【讨论】:

    • 是的,我知道这是一个安全问题。它只是关于使用请求的链接读取数据。例如,就像多家公司使用订单状态链接一样。但是谢谢你的回答。如果有任何办法,我会保留这个问题,但如果没有,我会尽快接受你的回答。
    猜你喜欢
    • 2017-09-05
    • 2019-07-06
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    相关资源
    最近更新 更多