firebase - firebase firestore数据库中“资源”一词的含义是什么
问题描述
我正在开发一个网络应用程序,在测试我的 firebase 安全规则时,我注意到你不知道“资源”这个词的含义,我想确保唯一能在医院看到病人的人应该是医生实际上在医院内工作
function iamOfThisHospital(){
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.universalIndetifier.hospital
== request.resource.data.universalIndetifier.hospital
}
解决方案
在 Cloud Firestore 安全规则中,resource
指的是数据库中的现有文档,并且request.resource
指的是请求中存在的文档(在写入期间,即 aset
或update
)。
您可能想要阅读的内容(因为没有request.resource
阅读内容)是将用户的医院与 进行比较resource
,而不是request.resource
:
function iamOfThisHospital(){
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.universalIndetifier.hospital
== resource.data.universalIndetifier.hospital
}
推荐阅读
- authentication - 为什么建议授权/身份验证令牌仅作为标头发送
- python-3.x - 如何创建多处理套接字服务器?
- php - laravel 中间件在全局组中工作,但不在路由组中
- powershell - PowerShell:PSSession 中的 Copy-Item 忽略 -Filter -Include -Exclude
- linux - 使用最新的 Linux 源代码构建驱动程序后,我可以做什么?
- javascript - Javascript,从 url 中删除查询字符串并更新 url 和浏览器历史记录
- r - R循环一个扩展列表
- python - 长返回类型提示和 pep8
- php - 创建查询以从 MYSQL WHERE min(i_status) = 4 中选择数据
- android - 无法观察 LiveData