Google cloud platform Firebase权限被拒绝

Google cloud platform Firebase权限被拒绝,google-cloud-platform,google-cloud-firestore,firebase-authentication,firebase-security,Google Cloud Platform,Google Cloud Firestore,Firebase Authentication,Firebase Security,在他完成验证后,我用电话号码调用此函数。此函数使用自定义声明添加他的号码,以满足此filebase数据库安全规则 { “规则”:{ “用户”:{ //“.read”:正确, //“.write”:“auth.token.phone==newData.val()”, //“.read”:“auth.uid!=null”, //.write:“newData.child('Personal Details').child('phone').val()==auth.token.phone” “$use

在他完成验证后,我用电话号码调用此函数。此函数使用自定义声明添加他的号码,以满足此filebase数据库安全规则

{
“规则”:{
“用户”:{
//“.read”:正确,
//“.write”:“auth.token.phone==newData.val()”,
//“.read”:“auth.uid!=null”,
//.write:“newData.child('Personal Details').child('phone').val()==auth.token.phone”
“$userNumber”:{
“个人资料”:{
“.read”:“auth.uid!=null”,
.write:“auth.token.phone==$userNumber”
},
“通知”:{
“.read”:“auth.token.phone===$userNumber”,
.write:“auth.uid!=null”
},
}
此函数调用后刷新令牌

FirebaseAuth.getInstance().getCurrentUser().getIdToken(true).addOnCompleteListener(新的OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
Log.d(“firebaseFunctionCall”,“onComplete:令牌刷新”);
checkUser();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
loadingBar.disclose();
Log.d(“firebaseFunctionCall”,“onFailure:未能刷新错误:”+e.getMessage());
}
});
我在这里做的是,当一个用户验证了他的号码,然后他的电话号码也被添加到数据库中

但我得到的
数据库权限被拒绝
错误

userRef=FirebaseDatabase.getInstance().getReference().child(“用户”);


如果需要更多详细信息,请询问我。但请帮助我解决此问题。

您的查询试图获取用户节点的全部内容,但您的安全规则不允许这样做。规则(请阅读并理解该链接)。您将只需要获取规则授予用户访问权限的数据库部分。这意味着您的规则只允许访问“用户/号码/个人详细信息”和“用户/号码/通知”请编辑该问题,以显示客户端查询没有按您期望的方式运行。我已经编辑了该问题Doug Stevenson现在我想我知道我错过了什么,只要告诉我我是否错了……在我的情况下,我没有为
用户
,但它像孩子一样
“个人详细信息”
“通知”
等。因此,当我尝试在
“用户”
节点中编写新用户时,数据库会给我
权限被拒绝
错误…我写了吗?我现在更新了我的问题,工作正常吗?尝试添加对$userNumber的读写访问权限,而不是它的子项。好的…我会尝试