3

참조 ID와 전자 메일 주소가 포함 된 일부 사용자 정보에 사용자 데이터를 저장했습니다. 데이터를 사용할 수있게 만들고 싶지만 사람들이 ID를 추측하고 그 뒤에 정보가 있는지 확인하지 못하게하십시오.Firebase 보안 규칙에서 전자 메일 주소의 유효성을 검사하는 방법

ID와 등록 된 이메일 주소를 제공하는 경우에만 데이터를 제공하려고합니다. 나뿐만 아니라 [email protected]를 제공하지 않는 한,

{ "data" : { 
    "ms12345678" : { 
     "name" : "John Doe", 
     "age" : 40, 
     "email" : "[email protected]" 
    } 
} 

그래서 var ref = firebase.database().ref("data/ms12345678")을하는 것은 실패 :

그래서 나는 중포 기지에 저장된 데이터를 가지고있다.

여기서는 어떤 접근 방법을 사용해야하는지 잘 모르겠습니다. 사용자 인증을 원하지 않지만 링크를 제공합니다.

{ 
    "rules": { 
    "data": { 
     "$uid": { 
     ".read": "auth.token.email === data.child('email').val()" 
     } 
    } 
    } 
} 

가 사용할 수있는 속성의 목록은 documentation on auth.token를 참조하십시오

답변

5

당신은 계정의 이메일 주소와 그 값을 일치하는지 확인할 수 있습니다.

또는 사용자가의 이메일 주소를 알고 있어야합니다. 이렇게하려면 사용자의 경로로 이메일 주소를 포함 :

{ 
    "rules": { 
    "data": { 
     "$uid": { 
     "$email: { 
      ".read": "auth.uid === $uid" 
     } 
     } 
    } 
    } 
} 
:이

{ "data" : { 
    "ms12345678" : { 
     "[email protected],com": { 
     "name" : "John Doe", 
     "age" : 40, 
     "email" : "[email protected]" 
     } 
    } 
} 

, 당신은 전체 경로를 알고있는 사람들에 대한 읽기 액세스를 제한 할 수 있습니다

관련 문제