Java 无法向firebase实时数据库添加权限

Java 无法向firebase实时数据库添加权限,java,android,firebase,firebase-realtime-database,firebase-security,Java,Android,Firebase,Firebase Realtime Database,Firebase Security,我想添加权限,以便只有经过身份验证的用户才能将数据读/写到我的数据库中。 但我尝试编写不同类型的权限,每次都得到相同的权限 数据库错误:权限被拒绝 如果读取和写入设置为true,则只有我可以读取/写入数据库 //this works { "rules": { ".read": true, ".write": true } } //does not work { "rules": { "userdetails":{ "$user_id":{

我想添加权限,以便只有经过身份验证的用户才能将数据读/写到我的数据库中。 但我尝试编写不同类型的权限,每次都得到相同的权限

数据库错误:权限被拒绝

如果读取和写入设置为
true
,则只有我可以读取/写入数据库

//this works
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

//does not work
{
  "rules": {
    "userdetails":{
      "$user_id":{
    ".read": "$user_id === auth.uid",
    ".write": "$user_id === auth.uid"
      }
    }
  }
}

//this also not works
{
  "rules": {
    ".read": "auth.uid != null",
    ".write": "auth.uid != null"
  }
}
输入数据的代码如下:

String userfirebaseid=FirebaseAuth.getInstance().getCurrentUser().getUid();
reff = FirebaseDatabase.getInstance().getReference().child("userdetails").child((userfirebaseid));

Map setValues = new HashMap();
setValues.put("eMail ID",user_id);
setValues.put("Name",user_name);
setValues.put("Phone Number",phn_no);
reff.setValue(setValues);
我的Firebase数据库


请告诉我我在这方面做错了什么。

首先,下面代码的用法是正确的

{
  "rules": {
    ".read": true,
    ".write": true
  }
}
输入数据的代码看起来不错,请尝试替换
Hashmap
以推送您的值,并添加一个
onFailureListener
,这样您就可以看到您得到的
错误:

Map<String,Object> map = new HashMap<String,Object>();
map.add("eMail ID",user_id);
map.add("Name",user_name);
map.add("Phone Number",phn_no);

reff.push().setValue(map).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            e.printStackTrace();
        }
    });
Map Map=newhashmap();
地图。添加(“电子邮件ID”,用户ID);
地图。添加(“名称”,用户名);
地图。添加(“电话号码”,phn_编号);
reff.push().setValue(map).addOnFailureListener(新的OnFailureListener()){
@凌驾
public void onFailure(@NonNull异常e){
e、 printStackTrace();
}
});

如果在
FirebaseDatabase.getInstance().getReference().child(“userdetails”).child((userfirebaseid))
之前记录
userfirebaseid
的值,您可以阅读有关在实时Firebase数据库上保存数据的更多信息?另请注意:在
userfirebaseid
周围有双括号,您可能希望删除它。