2017-10-24 10 views
4

Google Cloud Firestore 데이터베이스에 대한 보안 규칙을 설정하고 있습니다. 나는이 시도 내가 Error: Missing or insufficient permissions를 얻을 때Cloud Firestore의 보안 규칙 디버깅

allow delete: if 
    resource.data.locked == false 
    && (request.time - resource.data.timeStamp).seconds > 2592000; 

: 나는 그것의 타임 스탬프 값은 다음과 같은 논리를 사용하여 과거에 30 일 이상 경우에만 문서의 삭제를 허용하려합니다. 그래서, 첫 번째 질문 - 나는이 잘못에 대해 가고 있습니까, 아니면 내 논리에 결함이 있습니까?

그리고 추가 질문으로 규칙을 디버깅하는 방법이 있습니까? 아마도 console.log에 해당하는 것으로 이에 따라 조건부 규칙의 결과가 적용될 때 볼 수 있으며 타임 스탬프 대신 문자열을 제출하지 않는지 확인하십시오.

나는 request.time가 '지금'이라고 가정하고있어 내 resource.data.timeStamp가 올바른지 그 일을 뺀 나머지를 반환은 DurationthatDuration.secondsnumber을 반환하지만이에 newb 그 가정 중 하나 있어요 잘못되었을 수 있으며 이러한 값이 처리 될 때이를 볼 수 있으면 좋을 것입니다.

건배 내가 선택하지하고 모든

+0

당신은'duration.value()'[doc] (https://cloud.google.com/firestore/docs/reference/security/#duration) – Hareesh

+4

을 시도 했습니까?이 것이 디버거를 얻을 때까지 기다릴 수 없습니다. – DarkNeuron

답변

0

는이

request.time < resource.data.timeStamp + duration.value(30, "d"); 

그리고 두 번째 질문 같은 것을 시도하십시오, 나는 모른다. 실시간 데이터베이스와 같은 시뮬레이터는 없습니다. 아직 베타 버전임을 기억하십시오.