我具有以下安全规则
{
"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