Example Rules

Aturan keamanan Firestore ditulis dalam format aturan Firebase Security Rules yang mendefinisikan tingkat akses untuk koleksi dan dokumen dalam database Firestore.

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // Hanya pengguna yang terotentikasi yang dapat menulis profil mereka sendiri
    match /users/{userId} {
      allow read, update, delete: if request.auth != null && request.auth.uid == userId;
      allow create: if request.auth != null;
    }

    // Hanya pengguna yang terotentikasi yang dapat membaca dokumen yang berisi informasi rahasia
    match /sensitiveData/{document} {
      allow read: if request.auth != null;
      allow write: if false; // Tidak ada yang diizinkan untuk menulis
    }

    // Admin dapat membaca dan menulis semua dokumen
    match /adminOnly/{document} {
      allow read, write: if request.auth != null && request.auth.token.admin == true;
    }
  }
     // Aturan untuk dokumen di subkoleksi tertentu
    match /users/{userId}/posts/{postId} {
      allow read, write: if request.auth != null && resource.data.authorId == request.auth.uid;
      // Hanya pengguna yang membuat dokumen yang dapat menghapus atau memperbarui
      allow update, delete: if request.auth != null && resource.data.authorId == request.auth.uid;
    }

    // Aturan untuk koleksi dan subkoleksi
    match /organizations/{orgId} {
      allow read: if request.auth != null && 'read' in request.auth.token.permissions;
      allow write: if request.auth != null && 'write' in request.auth.token.permissions;
      match /projects/{projectId} {
        // Hanya pengguna yang memiliki akses khusus yang dapat menulis
        allow write: if request.auth != null && 'admin' in request.auth.token.roles;
      }
    }
}

Last updated