2016-10-01 3 views
0

firebase 실시간 데이터베이스에 사용자 데이터베이스가 있습니다.하위 레코드에 대한 Firebase .validate 규칙

내 구조는 다음과 같습니다

사용자 -> UID -> user_infos (I라는 속성했습니다이 수준에서 'CPF')

그래서 내가 CPF에 대한 .validate 규칙을 만들었을 :
{ 
    "rules": { 
    "users": { 
     "$user_id": { 
      "$cpf": { 
       ".validate": "!data.exists()" 
      } 
     } 
    } 
    } 
} 

문제

내가 사용자를 저장하려고 할 때, 나는 PERMISSION_DENIED 오류가 발생합니다.

나는 3.4.1

, 나는 사용자 저장에 사용하는 방법을 중포 기지 자바 스크립트 lib 디렉토리를 사용하고 있습니다 것은 :

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

내 의도는 CPF 속성이 데이터베이스에 고유해야한다는 것입니다.

감사합니다.

+1

규칙이 잘 보입니다. 이 실패를 빨리 볼 수있는 유일한 방법은'userDb.id'가 빈 문자열 일 때입니다. –

+0

안녕하세요 @ FrankvanPuffelen 나는 내 질문을 업데이트했다. 이전 질문은 내 필요성을 충족시키지 못했다. Thx –

+0

'.validate' 대신'.write'를 시도하고''.write ":"! data.exists() ||! newData.exists() "'"를 사용하면 어떻게 될까요? –

답변

0

수동으로 firebase에 대한 확인 작업을 수행했습니다. 그것은 그렇게 훌륭한 해결책은 아니지만 일했습니다.

+2

다른 사용자가 동일한 문제가있어 솔루션을 게시 할 수 있도록 솔루션을 게시해야합니다. –

관련 문제