Firebase 您可以通过firestore读取请求发送数据吗?
我想给未登录的用户一个选项,通过他们收到的令牌查看他们的数据,该令牌在一段时间后过期 令牌创建和发送部分已经完成,现在我看到两个选项:在函数中执行所有操作或使用firestore规则。 不过,规则会更好,因为直接读取数据库更快 例如,我有一个用户集合,其中的用户如下所示:Firebase 您可以通过firestore读取请求发送数据吗?,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我想给未登录的用户一个选项,通过他们收到的令牌查看他们的数据,该令牌在一段时间后过期 令牌创建和发送部分已经完成,现在我看到两个选项:在函数中执行所有操作或使用firestore规则。 不过,规则会更好,因为直接读取数据库更快 例如,我有一个用户集合,其中的用户如下所示: { name: 'test', token: '1234', expiresAt: <someTimeInFuture> } 是否有任何方法可以扩展get规则,以便在读取请求中发送该令牌的用户可
{
name: 'test',
token: '1234',
expiresAt: <someTimeInFuture>
}
是否有任何方法可以扩展get
规则,以便在读取请求中发送该令牌的用户可以查看数据。或者更好的说法是:我可以将令牌与我的读取请求一起发送,以便在规则中查看它吗
请记住,自定义声明不是选项,因为用户未登录。安全规则不支持客户端只需在验证请求中发送自定义数据。这实际上根本不“安全”。这就像要求某人提供一个可以在互联网上任何地方共享的密码。您需要一个后端端点来执行此操作,但请记住,它也会有相同的安全问题。是的,我知道这是一个安全问题。它只是关于读取数据与请求的链接。就像多家公司使用订单状态链接一样。但是谢谢你的回答。我会保留这个问题,以防有任何办法,但如果没有,我会接受你的答案很快。
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;
}
}
}