我正在制作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'])"
}
}
}
但它不起作用。请告诉我具体的解决方案。
答案 0 :(得分:1)
如果我正确地阅读了您的问题和评论,那么您将数据放在“标记”节点下。这意味着您还必须将其包含在您的安全规则中:
{
"rules":{
"marks":{
"$uid":{
".read":"auth.uid==$uid",
".write":"auth.uid==$uid",
".validate":"newData.hasChildren(['uid','Email','Name'])"
}
}
}
}