0

'익명'이외의 다른 제공자로 인증되지 않는 한 사용자가 글을 쓸 수 없도록하는 DB에 몇 가지 규칙을 쓰려고합니다. 이것은 내가 가지고있는 규칙이지만 페이스 북으로 로그인했을 때 어떤 이유로 작동하지만 이메일/패스워드로 로그인 할 수 없다. 권한이 거부되었습니다. 오류가 발생했습니다. 추 신 이메일/pwd 사용자는 업그레이드 된 SDK 전에 생성되었습니다. 왜 이것이 작동하지 않는지?페이스 북 공급자를위한 Firebase 인증 규칙이 이메일/비밀번호가 아닌

"updates": { 
    ".read": "auth !== null", 
    ".write": "auth !== null && auth.provider !== 'anonymous'", 
    "$location_id": { 
     ".indexOn": "validFrom", 
     "$update_id": { 
     ".validate": "newData.hasChildren(['displayName', 'place_id', 'name', 'statusValueId', 'update_id', 'user_id', 'validFrom', 'votes'])" 
     } 
    } 
    }, 

답변

2

왜 이것이 작동하지 않는지 확인하는 가장 좋은 방법은 firebase 콘솔에서 시뮬레이터를 사용하는 것입니다.

당신은 데이터베이스에서 찾을 수 있습니다> 규칙> 시뮬레이터 (오른쪽 상단) 라디오 버튼

  • 에서

    enter image description here

    1. 쓰기를 선택 공급자를 선택 토글 "인증"을 선택 사용자 토큰 "Auth token payload"에서 테스트하고 쓰고 싶습니다.
    2. "Location"에 참조 경로를 쓰십시오.
    3. "Data (JSON)"로 붙여 넣기 json으로는
    4. 실행을 클릭을 기록 할 객체와 중포 기지가 실패하는 규칙을 알려줍니다 auth.provider 대신 이메일/암호 인증 anonymous에 동일
  • +1

    을 ☃ 그리고이 완전히 질문에 대답하지 않는 경우, 진단하는 데 도움이 시뮬레이터의 출력을 포함한다. – Kato

    1

    난 당신이 나와 같은 버그를 치는 것을 의심, password입니다. 슬프게도 Firebase 팀의 답변을 아직받지 못했습니다.

    auth.provider is not set to 'password' when user signs-in with email and password

    업데이트 : 중포 기지의 구글 그룹 페이지에서 몇 가지 큰 도움을 받았다. 그들은 버그를 확인하고 해결 방법을 제공했습니다. 아래 링크 참조 :

    https://groups.google.com/d/topic/firebase-talk/C-ljg-CCKl0/discussion

    +0

    나는 우리가 실제로 똑같은 문제를 가지고 있다고 믿는다. – rex