DesignFirebase Правила проверки и проверки ловя неудачу в андроида приложения
- пользователь, который может войти в приложения
- Записан пользователи могут создавать клиентов, которые будут храниться под
node
, значение которого будет вошедшего в идентификатору пользователя
Текущие значения 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"
}
}
}
}
Ниже приведено правило для customers
Таблица в firebase
.
{
"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":{}
}
}
}
}
Даже если я определил, что правило для customerCode
то оно должно иметь значение меньше, чем 4-х символов, оно позволяет вставить 5 символов. Также как я могу добавить проверку, которая проверяет уникальность customerCode
для каждого userId
? на данный момент он имеет !newData.exists()
, но его тоже не работает.
Может ли кто-нибудь направить меня в правильном направлении?
Прежде всего, спасибо большое за ваше время .. Но это не проблема с массивом, начиная с '0' .. Он принимает также 10 символов. Нет никакой другой работы для добавления правила, где я могу проверить для этой уникальности 'customerCode' за' userID', потому что я чувствую, что дополнительная таблица ссылок будет избыточной ... –
Жаль, что это вам не помогло, так или иначе, взгляните на репозиторий, который я связал с вами выше, это хороший пример с множеством условий для «правил пожарной базы». Что касается вашей таблицы, это будет проще и дешевле на уровне данных, если вы проверите, что уникальный 'CustomerCode' связан с уникальным пользователем, чем проверка того, связан ли какой-либо пользователь всей вашей базы данных с этим« CustomerCode ». Другой способ может быть просто хранить в некотором месте все «CustomerCodes», которые ваши пользователи уже использовали в приложении, и просто проверить, существует ли код, когда новый пользователь хочет его создать. –
. Я могу взять некоторые идеи с вашим предложением для создания уникального 'customerCode' .. Спасибо за ссылку и +1 за ваши усилия .. :) Я постараюсь разрешить это через ссылку, которую вы предоставили, если вообще я могу .. :) –