2016-09-07 4 views
1

음수 값을 방지하기 위해 firebase 데이터베이스 규칙을 사용하려고합니다.firebase 데이터베이스 규칙을 사용하여 음수 값 방지

location: /products/-KQ1qLkeI3gefuGSFIL_ 

을 : 내가 사용하고

".validate": "newData.child('quantity').val() >= 0" 

: 난 항상 쓰기 유효성 검사 규칙을 거부보고하고 규칙을 테스트하기 위해 시뮬레이터를 사용하지만

{ 
"rules": { 
    "products": { 
     ".read": true, 
     ".write": "auth != null", 
     ".indexOn": ["subgroup", "group", "visibility"], 
     ".validate": "newData.child('quantity').val() >= 0" 
    } 
} 

,

{ 
    "quantity": 0 
} 

인증을 사용하고 있습니다. icated user.

어떤 아이디어가 여기에 있습니까?

감사합니다.

==== 업데이트 : 다음과

변경 규칙이 도움이되지 않았다 : 또한

"products": { 
     "$product": { 
     ".read": true, 
     ".write": "auth != null", 
     ".validate": "newData.child('quantity').val() >= 0", 
     ".indexOn": ["subgroup", "group", "visibility"] 
     } 
    }, 

를, DB 설계 :

DBRoot 
    products 
     -KQ1nPkLeqiTMzEzhrfW 
      description:"Limited Edition" 
      quantity: 5 
      ... 
+0

는 대신의 제품/제품/-KQ1qLkeI3gefuGSFIL_에 직접 쓰기 사용해 볼 수 있습니까? –

답변

1

귀하의 유효성 검사 규칙이 /products에있는 ,하지만 당신은 /products/[autoid]에 편지를 쓰고 있습니다. 과 같이 규칙을 수정하십시오 :

{ 
    "rules": { 
    "products": { 
     "$pid": { 
     ".read": true, 
     ".write": "auth != null", 
     ".indexOn": ["subgroup", "group", "visibility"], 
     ".validate": "newData.child('quantity').val() >= 0" 
     } 
    } 
    } 
} 

Simulated Rules

+0

아니, 여전히 같은 오류, @dbburgess – Ahsan

+0

흠, 이상 하네. 나는 그것이 나를 위해 일하는 것을 보여주는 스크린 샷으로 나의 대답을 편집했다. 당신이하는 일에 대해 약간 다른 뭔가가 있어야합니다. – dbburgess

+0

데이터베이스 디자인을 볼 수 있습니까? @dbburgess – Ahsan