Firebase规则不起作用

时间:2016-12-07 12:41:17

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

我正在开发一个应用程序,你住在公寓里并有室友,现在我正在尝试禁止所有不住在那个公寓的用户访问。

以下是我的规则:

{
  "rules": {
    // no access 
    ".read": "false",
    ".write": "false",
      "Users" : {
      "$userID" : {
        //read on User Folder for all Users 
        ".read" : "auth != null",
        //write only for the user itself 
        ".write" : "$userID === auth.uid"
      }
    },
    "Flat" : {
      "$flatID" : {
        //Flat (identified through flatID) can only be accessed, if you are a roommate 
        ".read" : "$flatID === root.child('Users').child(auth.uid).child('flatID').val()",
        ".write" : "$flatID === root.child('Users').child(auth.uid).child('flatID').val()"
      }
    }
  }
}

我的数据库看起来有点像这样:

root
.Users 
..uID
...(data) 
...flatID : number 
.Flat 
..flatID 
...(data) 

因此该用户的flatID存储在root / Users / uID / flatID的“文件夹”中,我试图访问它:root.child('Users').child(auth.uid).child('flatID').val()然后用“文件夹”flatID检查它。 / p>

现在,如果我尝试将任何数据写入公寓,我没有正确的权限,我找不到我的错误。 Users / userID规则工作正常

提前致谢:)

编辑:

数据如下所示:

root 
_Flat 
__1 
___name : "asdf" 
__2
___(more Flats, for the Problem we only need one) 
_Users 
__F8XpTmxfIzYzrEY92alBOnx5eTO2 (Auth ID) 
___flatID : 1 
__nextUserID
___NextUserData 

编辑平面名称的我的Java代码是:

fref.child("Flat").child(flatID).child("name").setValue(flatNameInput.getText().toString())

flatID是具有该用户的flatID的变量

0 个答案:

没有答案