gpt4 book ai didi

java - 无法向 firebase 实时数据库添加权限

转载 作者:行者123 更新时间:2023-12-01 19:58:03 25 4
gpt4 key购买 nike

我想添加权限,以便只有经过身份验证的用户才能将数据读/写到我的数据库中。但我尝试编写不同类型的权限,但每次都得到相同的结果。

DatabaseError: Permission denied

如果读写设置为true,那么只有我可以读/写数据库。

//this works
{
"rules": {
".read": true,
".write": true
}
}

//does not work
{
"rules": {
"userdetails":{
"$user_id":{
".read": "$user_id === auth.uid",
".write": "$user_id === auth.uid"
}
}
}
}

//this also not works
{
"rules": {
".read": "auth.uid != null",
".write": "auth.uid != null"
}
}

输入数据的代码是这样的:

String userfirebaseid=FirebaseAuth.getInstance().getCurrentUser().getUid();
reff = FirebaseDatabase.getInstance().getReference().child("userdetails").child((userfirebaseid));

Map setValues = new HashMap();
setValues.put("eMail ID",user_id);
setValues.put("Name",user_name);
setValues.put("Phone Number",phn_no);
reff.setValue(setValues);

我的 Firebase 数据库

请告诉我我做错了什么。

最佳答案

首先,以下代码的使用是正确的。

{
"rules": {
".read": true,
".write": true
}
}

用于输入数据的代码看起来不错,尝试替换 Hashmap 来推送您的值并添加 onFailureListener 以便您可以看到您遇到的错误得到:

Map<String,Object> map = new HashMap<String,Object>();
map.add("eMail ID",user_id);
map.add("Name",user_name);
map.add("Phone Number",phn_no);

reff.push().setValue(map).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
e.printStackTrace();
}
});

您可以阅读有关在实时 Firebase 数据库上保存数据的更多信息 here

关于java - 无法向 firebase 实时数据库添加权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59022844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com