2013-04-09 2 views
2

이메일/비밀번호 인증과 함께 Firebase Simple Login을 사용하고 있습니다. 나는 각각의 사용자가 고유 한 이름을 갖도록/username/username에 'username'이라는 변수를 저장합니다. 그러나 사용자는 해당 위치의 값을 편집하고 기존 사용자 이름을 입력 할 수 있습니다. 사용자가 기존 사용자 이름으로 사용자 이름을 변경하는 것을 금지 할 수있는 방법이 있습니까? if/anyid/username/JOHN이 존재하면 변경을 허용하지 않습니다. 거기에 쓸 수있는 규칙이 있습니까?Firebase의 사용자 이름 간단한 로그인 (이메일/패스워드)

미리 감사드립니다.

답변

4

예! 해당 위치에 현재 데이터가 없음을 요구하는 .write 규칙을 간단히 가질 수 있습니다. 예 :

{ 
    "rules" : { 
    "$id" : { 
     "username" : { 
     ".write":"!data.exists()" 
     } 
    } 
    } 
} 
+0

안녕하세요. 답장을 보내 주셔서 감사합니다. 그러나 누군가 JS 콘솔을 통해 사용자 이름을 할당하지 않고도 계정을 만들 수는 없습니다. var chatRef = new Firebase ('https://whatever.firebaseio.com'); var authClient = new FirebaseAuthClient (chatRef, function (error, user) { (..) }); 다른 사용자가 이미 소유하고있는 사용자라도 원하는 사용자 이름을 할당 할 수 있습니까? – Gino

+0

auth 값이 사용자 정보에 쓰여지는 값과 동일한 지 확인하는 추가 규칙을 가질 수 있습니다. 여기에 좀 더 복잡한 규칙의 예제가 있습니다 : https://github.com/firebase/firefeed 또한 보안 규칙의 작동 방법을 안내하는 스크린 캐스트를보아야합니다 : https://www.firebase.com/docs/security- quickstart.html –

+0

왜 유효성 검사 작업 대신 쓰기 작업을 사용 했습니까? 도와 주셔서 감사합니다! – Crashalot

관련 문제