Firebase安全规则问题

时间:2020-08-25 14:25:37

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

我具有以下安全规则

{
  "rules": {
    "Users":{
      "$uid":{
        ".read":"auth != null",
        ".write": "auth != null && auth.uid == $uid",
      }
    },
  }
}

在我的应用中,用户是这样注册的

mAuth.createUserWithEmailAndPassword(email, password)
    .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            String UID = mCurrent.getUid();
            if (task.isSuccessful()) {
                //Get the details from our UserHelperClass
          
                UserHelperClass helperClass = new UserHelperClass();
                helperClass.setName(name);
                helperClass.setContactNumber(contactNumber);
                helperClass.setEmail(email);
                helperClass.setEmergencyContact(emergencyContact);
                helperClass.setPhoneNo(phoneNo);
                helperClass.setDob(dob);
                helperClass.setPlayerID(playerID);
                helperClass.setUid(UID);
    
  ........ //Get an instance of the firebase database and add the details from helper class to a new UID node
                FirebaseDatabase.getInstance().getReference("Users").child(UID)
                        .setValue(helperClass).addOnCompleteListener(new OnCompleteListener<Void>() {

我希望任何经过身份验证的用户都可以看到该信息,同时任何配置文件更新应由具有授权UID的人员执行。当我运行此命令时,对读取的访问被拒绝logcat表示权限被拒绝

在/ Users上收听失败:DatabaseError:权限被拒绝

,我的应用程序中有一个个人资料页面,所有信息均为空白。但是,如果我单击信息进行编辑,它将更新并显示在应用程序中。 另外,如果我从规则中删除“用户”部分,则可以看到该信息,但无法更新。 任何想法都是我想使用这些规则的问题,所有文档/视频似乎都建议采用这种方法,但无法实现它们。同样在规则游乐场中,我可以在路径上读取内容,并通过已认证的UID

0 个答案:

没有答案