Firebase规则从不返回请求。响应

Firebase规则从不返回请求。响应,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,当我在应用程序或模拟器中使用request.response安全规则运行Firebase/Firestore查询时,它始终无法通过检查。模拟器抛出错误:simulator.rules行[XX],列[XX]。对象上未定义属性资源 这意味着我查询的文档不是真实的。它存在于我的数据库中,为了防止模拟器不检查真实文档,我确保在运行get之前立即对文档执行sim create调用。在此集合或任何其他集合中似乎找不到我插入的实际文档ID。显然忽略了一些重要的、可能是荒谬的基本问题: rules_versio

当我在应用程序或模拟器中使用request.response安全规则运行Firebase/Firestore查询时,它始终无法通过检查。模拟器抛出错误:simulator.rules行[XX],列[XX]。对象上未定义属性资源

这意味着我查询的文档不是真实的。它存在于我的数据库中,为了防止模拟器不检查真实文档,我确保在运行get之前立即对文档执行sim create调用。在此集合或任何其他集合中似乎找不到我插入的实际文档ID。显然忽略了一些重要的、可能是荒谬的基本问题:

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /responses/{id} {
        allow read: 
             if request.auth.uid == request.resource.data.userID;        
  }
}
仅供参考,查询已通过身份验证,我正在点击路径responses/documentName,它实际上存在一个userID属性。不使用request.response的规则工作正常

这显然是一个超级样板规则/查询。我忽略了什么


非常感谢:

正如错误消息所说,request.resource不存在。它只存在于写操作上

请尝试以下方法:

if request.auth.uid == resource.data.userID;