首页 > 解决方案 > firebase firestore数据库中“资源”一词的含义是什么

问题描述

我正在开发一个网络应用程序,在测试我的 firebase 安全规则时,我注意到你不知道“资源”这个词的含义,我想确保唯一能在医院看到病人的人应该是医生实际上在医院内工作

function iamOfThisHospital(){
  return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.universalIndetifier.hospital 
  == request.resource.data.universalIndetifier.hospital
}

标签: firebasegoogle-cloud-firestorefirebase-security

解决方案


在 Cloud Firestore 安全规则中,resource指的是数据库中的现有文档,并且request.resource指的是请求中存在的文档(在写入期间,即 asetupdate)。

您可能想要阅读的内容(因为没有request.resource阅读内容)是将用户的医院与 进行比较resource,而不是request.resource

function iamOfThisHospital(){
  return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.universalIndetifier.hospital 
  == resource.data.universalIndetifier.hospital
}

推荐阅读