0

나는 Firebase으로 실험 중이며 security rules에 대해 궁금합니다.firebase - 보안 규칙 REST

{ 
"myNewData" : "Some String" 
} 

작성됩니다 만 객체가 키 이름 myNewData을 갖도록 어떻게 규칙을 작성할 수

는의는 단순히로서 표현되는 중포 기지 데이터 세트가 있다고 가정하자? 내가 시뮬레이터 아니라에서 작동

{ 
    "rules": { 
     ".read":true, 
     "$someData":{ 
     ".write":true,   
     ".validate": "newData.hasChild('myNewData')" 
     } 

    } 
    } 

와 함께 제공되는 시뮬레이터

-myFireBaseapp 
    -someData 
     -RandomFirebaseKey 
      -myNewData 
     -RandomFirebaseKey 
      -myNewData 

다음과 같이 나는 POST 방법과 데이터를 사용하고

는 중포 기지에 구성되어 우편 집배원. 어떤 정보를

POST

http://myfirebase.app.bucket/someData.json

{ 
    "myNewData" : "Some String" 
    } 

감사합니다. 당신이 당신의 데이터는 항상 값으로 키 /someData/<anyKey>/myNewData를 원한다면

+0

실패한 REST 호출을 만드는 최소 코드를 표시하십시오. –

+0

@FrankvanPuffelen REST 콜은 우편 배달부에 속합니다. – gregdevs

+0

위의 추가 된 전화 요청 해당 요청은 데이터를 전송하지 않으므로 보안 규칙을 충족하지 않습니다. [최소한하려는, 당신이하려는 일의 완전한 예] (http://stackoverflow.com/help/mcve)가 도움이 되기는 어렵습니다. 이 경우, 예를 들어, 두 개의 데이터 샘플은 'myNewData'가 값의 키인지 여부에 따라 달라집니다. 나는 도움이되기를 희망하는 대답을 쓸 것이다. –

답변

1

, 당신은 당신이 당신의 눈을 곁눈질 경우

{ 
    "rules": { 
     ".read":true, 
     "someData":{ 
      "$anyKey": { 
       ".write":true,   
       ".validate": "newData.hasChild('myNewData')" 
      } 
     } 
    } 
} 

와 함께, 당신은 여전히이 규칙 /someData/$anyKey/myNewData의 경로를 볼 수의 유효성을 검사 할 수 있습니다.

{ 
    "rules": { 
     ".read":true, 
     "someData":{ 
      "$anyKey": { 
       ".write":true,   
       ".validate": "newData.hasChild('myNewData')", 
       "myNewData": { 
        ".validate": "data.isString()" 
       }, 
       "$other": { 
        ".validate": false 
       } 
      } 
     } 
    } 
} 

가 나는 또한 어떤으로 기록 보장 마지막 샘플에 "$other: { ".validate": false }을 추가 : 당신은 또한 myNewData의 값이 문자열 인 것을 확인하려면

, 당신은에 규칙을 확장 것 지정되지 않은 키는 거부입니다. 이제 /someData/$anyKey에만 문자열 인 myNewData 속성을 포함 할 수 있습니다.

이 내용은 모두 Using $ Variables to Capture Path Segments의 Firebase 설명서에서 다룹니다. 학습을 적극 권장합니다.

+0

굉장합니다. 예를 들어 주셔서 감사합니다. 몇 시간 만에이 기회를 포기하고 다시 알려줄 것입니다. – gregdevs

+0

나는 그들의 문서를 잠시 들여다 보았지만 변수 능력을 포착하지는 못했다. 감사합니다 – gregdevs

+0

다시 감사합니다. 이것은 올바른 길로 나를 잡았습니다. – gregdevs