3

방금 ​​Cloud Firestore로 마이그레이션 한 것을 보았는데이 보안 규칙에 대해 궁금합니다. Firebase 실시간 데이터베이스에서이 규칙은 다음과 같습니다.클라우드 Firestore에서 만드는 방법은 한 번만 보안 규칙을 만듭니다.

규칙 표현식에서 하나의 피연산자가 참이면 true로 평가됩니다.

이 예에서는 이전 데이터 또는 새 데이터가없는 한 쓸 수 있습니다. 이 있습니다. 즉, 데이터를 삭제하거나 데이터를 만들지 만 데이터를 업데이트하지 않으면 쓸 수 있습니다.

"에 .write": "! data.exists() || newData.exists()"

미안

match /USER_ID/{Id} { 
    allow create: if resource.data.id != exist 
    allow read: if request.auth.uid != null; 
    } 
같은 클라우드 경우 FireStore에 복제 시도

내가 원하는 것은 DocumentUSER_IDCollection에 존재하면이 트랜잭션이 실패해야한다는 것입니다. 그러나 이것은 작동하지 않습니다. doc을 몇 번 읽었지만 작동하지 않습니다.

답변

2

존재하는 함수가 있으면 테스트 할 문서의 경로를 전달해야합니다. 다음은 문서가 존재하지 않는지 확인하는 방법의 예입니다.

service cloud.firestore { 
    match /databases/{database}/documents/ { 
     match /USER_ID/{Id} { 
     allow create: if !exists(/databases/$(database)/documents/USER_ID/$(Id)) 
     allow read: if request.auth.uid != null; 
     } 
    } 
} 
+0

감사합니다. 나는 이것에 가까운 것을 시도했지만 지금은 효과가 있습니다. – Erik