La validación de Firebase Rules y la validación de captura fallan en la aplicación de Android
Diseño
Un usuario que puede iniciar sesión en la aplicaciónEl usuario conectado puede crear clientes que se almacenarán ennode
cuyo valor será el ID de usuario actual conectadoValores actuales de DB
{
"customers" : {
"UserId1" : {
"custId1" : {
"customerCode" : "thk",
"customerLimit" : "58866",
"customerName" : "Test New "
},
"custId2" : {
"customerCode" : "thh",
"customerLimit" : "5698",
"customerName" : "Yeth"
}
},
"UserId2" : {
"custId3" : {
"customerCode" : "thh",
"customerLimit" : "5886",
"customerName" : "Test "
},
"custId4" : {
"customerCode" : "tbh",
"customerLimit" : "58669",
"customerName" : "New Test"
}
}
}
}
A continuación se muestra la regla actualmente definida paracustomers
mesa enfirebase
.
{
"rules": {
"customers":{
".read": "auth != null",
".write": "auth != null",
"$CID":{
"customerName":{
".validate": "newData.isString() && newData.val().length < 100"
},
"customerCode":{
".validate": "newData.isString() && newData.val().length<4 && !newData.exists()"
},
"customerLimit":{}
}
}
}
}
Aunque he definido que una regla paracustomerCode
es decir, debe tener un valor inferior a 4 caracteres, permite insertar 5 caracteres. Además, ¿cómo puedo agregar una validación que valide la unicidad decustomerCode
para cadauserId
? a partir de ahora tiene!newData.exists()
pero tampoco funciona.
¿Podría alguien guiarme en la dirección correcta?