반응형

속성 기반 액세스
- 회원 컬렉션의 문서에서 속성(관리자 여부) 필드 참조

service cloud.firestore {
  match /databases/{database}/documents {
    function isAdmin(uid) {
      return get(/databases/$(database)/documents/users/$(uid)).data.admin == true;
    }

    match /collection/{document} {
      allow write: if isAdmin($(request.auth.uid));
      allow read: true;
    }
  }
}
반응형

'firestore' 카테고리의 다른 글

[firestore] Role-based access  (0) 2022.11.13
firestore security rule, public resource  (0) 2022.11.07
firestore security rule(auth & owner)  (0) 2022.11.06
반응형

역할 기반 액세스
- 회원 컬렉션의 문서에서 역할 필드 참조

service cloud.firestore {
  match /databases/{database}/documents {
    function isReader(uid) {
      return get(/databases/$(database)/documents/users/$(uid)).data.role == "Reader";
    }
    function isWriter(uid) {
      return get(/databases/$(database)/documents/users/$(uid)).data.role == "Writer";
    }

    match /some_collection/{document} {
     allow read: if request.auth != null && isReader($(request.auth.uid))
     allow write: if request.auth != null && isWriter($(request.auth.uid))
    }
  }
}

 

반응형

'firestore' 카테고리의 다른 글

firestore security rule, 속성 기반  (0) 2022.11.19
firestore security rule, public resource  (0) 2022.11.07
firestore security rule(auth & owner)  (0) 2022.11.06
반응형

공개 설정한 데이터는

타인도 조회 가능하도록 설정

 

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    function isSignedIn() {
      return request.auth.uid != null;
    }

    function isOwner(userId) {
      return request.auth.uid == userId;
    }

    function isPublic() {
      return resource.data.visibility == 'public';
    }

    match /identities/{identityId} {
      allow read, write: if isPublic() || 
      (isSignedIn() && isOwner(resource.data.owner));
    }
  }
}

 

인증되었으며 본인만 가능한 경우는 아래 참조

https://howtomakehappy.tistory.com/entry/firestore-security-ruleauth-owner

반응형

'firestore' 카테고리의 다른 글

firestore security rule, 속성 기반  (0) 2022.11.19
[firestore] Role-based access  (0) 2022.11.13
firestore security rule(auth & owner)  (0) 2022.11.06
반응형

identities 컬렉션의 데이터는

인증되어있어야 하고

소유자가 본인이어야 한다.

 

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    function isSignedIn() {
      return request.auth.uid != null;
    }

    function isOwner(userId) {
      return request.auth.uid == userId;
    }

    match /identities/{identityId} {
      allow read, write: if isSignedIn() && isOwner(resource.data.owner);
    }
  }
}

 

반응형

'firestore' 카테고리의 다른 글

firestore security rule, 속성 기반  (0) 2022.11.19
[firestore] Role-based access  (0) 2022.11.13
firestore security rule, public resource  (0) 2022.11.07

+ Recent posts