2016-10-01 3 views
0

У меня есть база данных пользователей в базе данных firebase реального времени.Firebase .validate rule for child record

Моя структура:

Пользователи -> UID -> user_infos (на этом уровне я свойство под названием: 'СПЛ')

Так что я создал .validate правило СПЛ:

{ 
    "rules": { 
    "users": { 
     "$user_id": { 
      "$cpf": { 
       ".validate": "!data.exists()" 
      } 
     } 
    } 
    } 
} 

проблема заключается в том, когда я пытаюсь сохранить пользователь, я получаю сообщение об ошибке PERMISSION_DENIED.

Я использую firebase яваскрипта ОМТ 3.4.1

метод, который я использую для сохранения пользователь:

firebase.database().ref('users/' + uid).set(userDb); 

Мое намерение состоит в том, что СПЛ свойство быть уникальным в базе данных.

спасибо.

+1

Ваши правила выглядят хорошо. Единственный способ, с помощью которого я могу быстро увидеть это, - это когда 'userDb.id' является пустой строкой. –

+0

Привет @FrankvanPuffelen Я обновил свой вопрос, старый вопрос не удовлетворил мою необходимость. Thx –

+0

Что делать, если вы пытаетесь использовать '.write' вместо' .validate' и используете правило '' .write ":"! Data.exists() ||! NewData.exists() "' " –

ответ

0

Я исправил его, выполнив вручную проверку на firebase. Это не очень хорошее решение, но работало.

+2

Вы должны опубликовать свое решение, чтобы, если у кого-то еще такая же проблема, они могут попробовать ваше решение. –