Firebase数据库安全规则和美元符号

时间:2017-05-07 08:54:48

标签: firebase firebase-realtime-database firebase-authentication

我正在创建一个Google文档类型的应用,其中多个用户可以实时编辑document

这些是我的安全规则:

{
  "rules": {
    "docs": {
      "$doc_id": {
          ".read": "auth.token.doc_id === $doc_id",
          ".write": "auth.token.doc_id === $doc_id"
      }
    }
  }
}

这是我的Auth令牌有效负载(示例)

{
  "provider": "anonymous",
  "uid": "e71afdf1-2b31-4c75-8f10-a9b0f916915e",
  "token": {
    "doc_id": 11
  }
}

因此,当我尝试阅读此路径/docs/11/data时,我收到Simulated read denied错误。

另一方面,当我改为使用此规则

".read": "auth.token.doc_id === 11",  (i.e. hard code $doc_id as 11)

阅读通过。

但是当我阅读$doc_id或者我误解了某些内容时,11是否等于/docs/11/data

P.S。如果重要,这里是我的数据库中的数据

{
  "docs": {
    "2": {
      "data": {
        "title": "test"
      }
    },
    "11": {
      "data": {
        "title": "test"
      }
    }
  }
}

0 个答案:

没有答案