【发布时间】: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