如何为Android App设置Firebase数据库安全规则

时间:2016-09-20 18:33:51

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

我正在制作Android应用程序,它将收集用户的有用信息。这是代码

Firebase postRef = mRef.child("marks");
Map<String, String> marks = new HashMap<String, String>();
marks.put("Name", fname);
marks.put("Phone", fphone);
marks.put("Year", fyear);
marks.put("Email", femail);
String uid=postRef.getKey();
Toast.makeText(im.this,"Thanks!",Toast.LENGTH_LONG).show();

这将导致从我的Android应用程序的每个用户获取数据。我应该如何设置特定规则,只有经过身份验证的用户才能访问其信息。不是其他用户信息。

我在Firebase规则中试过这个:

{
  "rules":{
  "$uid":{
    ".read":"auth.uid==$uid",
    ".write":"auth.uid==$uid",
    ".validate":"newData.hasChildren(['uid','Email','Name'])"
    }
  }

}

但它不起作用。请告诉我具体的解决方案。

1 个答案:

答案 0 :(得分:1)

如果我正确地阅读了您的问题和评论,那么您将数据放在“标记”节点下。这意味着您还必须将其包含在您的安全规则中:

{
"rules":{
  "marks":{
    "$uid":{
      ".read":"auth.uid==$uid",
      ".write":"auth.uid==$uid",
      ".validate":"newData.hasChildren(['uid','Email','Name'])"
      }
    }
  }
}
相关问题