用于强制外键访问的Firebase数据库规则

用于强制外键访问的Firebase数据库规则,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我试图强制外键访问,用户只能看到他们创建的记录 当尝试下面的.read配置时,每次都会显示PermissionDenied。根据文档,看起来这个配置应该可以工作 规则: { "rules": { ".write": "auth != null", "emails": { ".indexOn": ["userId"], "$email": { ".read": "data.child('userId').val() === auth.ui

我试图强制外键访问,用户只能看到他们创建的记录

当尝试下面的
.read
配置时,每次都会显示
PermissionDenied
。根据文档,看起来这个配置应该可以工作

规则:

{
  "rules": {
    ".write": "auth != null",
    "emails": {
      ".indexOn": ["userId"],
      "$email": {
        ".read": "data.child('userId').val() === auth.uid"
      }
    }
  }
}
JSON数据:

{
  "emails" : {
    "-K_RIN22BBoI3M7JCt6W" : {
      "email" : "a@a.com",
      "userId" : "S2hOJpLdXlghmmPb8r20cJLzJTB2"
    },
    "-K_RImdpfGrln0AlUZqp" : {
      "email" : "b@b.com",
      "userId" : "eCD2aHZANada1xKXBLdsR7XMzMu1"
    }
  }
}

你的规则应该允许阅读个人电子邮件。但是,您将无法查询特定用户的电子邮件列表,因为查询需要读取所有条目,以确定哪些条目匹配,哪些条目不匹配。