规则实时数据库



我想创建一个规则,当一个登录帐户读取和写入数据库时,你能帮助我吗,我的代码有问题吗?

this my rules database

{
"rules": {
"User": {
"$uid": {
".read": "auth !== null && auth.uid === $uid",
".write": "auth !== null && auth.uid === $uid"
}
},
"Layanan Nasabah": {
".read": "root.child('User/' + auth.uid).exists()",
".write": "root.child('User/' + auth.uid).exists()"
}
}
}

this my codes

database.child("Layanan Nasabah").child(mAuth.getUid()).setValue(new pengaduan
(getNo,getNo_Tiket,getNama_Penelpon,getPenelpon1,getPenelpon2,getEmail,getPertanyaan,getTertanggung,getNo_Polis,getObyek,getCatatan)).addOnSuccessListener(unused -> {
Toast.makeText(TambahActivity.this, "Data Berhasil Disimpan", Toast.LENGTH_SHORT).show();
startActivity(new Intent(TambahActivity.this, OnprogressActivity.class));
finish();
}).addOnFailureListener(e ->
Toast.makeText(TambahActivity.this, "Data Gagal Disimpan", Toast.LENGTH_SHORT).show());
}

据我所知,您希望仅登录用户(经过身份验证的用户)读取/写入数据库中的节点。

这个规则:

".write": "auth !== null && auth.uid === $uid"

表示任何认证用户只能写他自己的uid .

users节点中,您已经完成了您所要求的:

//because this means any authenticated user can read and write their 
//own nodes (UIDs)
"User": {
"$uid": {
".read": "auth !== null && auth.uid === $uid",
".write": "auth !== null && auth.uid === $uid"
}
}

更新如果您还希望通过身份验证的用户只能读写Layanan Nasabah节点,您可以这样做:

"Layanan Nasabah": {
"$uid":{
".read": "root.child('User/' + auth.uid).exists() && auth !== null && auth.uid === $uid",
".write": "root.child('User/' + auth.uid).exists() && auth !== null && auth.uid === $uid"
}
}

最新更新