Memvalidasi Aturan Keamanan Firebase dengan cepat

Untuk menguji Aturan Keamanan Firebase yang telah diperbarui dengan cepat di Firebase console, gunakan Rules Playground.

Rules Playground adalah alat yang praktis untuk digunakan seiring Anda menjelajahi perilaku baru atau memvalidasi aturan dengan cepat seiring Anda menulisnya. Alat ini akan menampilkan pesan yang mengonfirmasi bahwa akses diizinkan atau ditolak sesuai dengan parameter yang Anda tetapkan untuk simulasi.

Menggunakan Rules Playground

  1. Buka Firebase console dan pilih project Anda.
  2. Lalu, dari navigasi produk, lakukan salah satu tindakan berikut:
    • Pilih Realtime Database, Cloud Firestore, atau Storage, sesuai keperluan, lalu klik Rules untuk membuka editor Rules.
  3. Setelah mengedit, klik Rules Playground dari editor.
  4. Di setelan Rules Playground, pilih opsi untuk pengujian Anda, termasuk:
    • Pengujian operasi baca atau tulis.
    • Lokasi tertentu dalam database atau bucket penyimpanan, berupa jalur.
    • Jenis autentikasi — pengguna yang tidak diautentikasi, pengguna anonim yang diautentikasi, atau ID pengguna tertentu.
    • Data khusus dokumen yang dirujuk secara khusus oleh aturan Anda (misalnya, jika aturan Anda mengharuskan adanya kolom tertentu sebelum mengizinkan penulisan).
  5. Klik Run dan cari hasilnya di banner di atas editor.

Contoh skenario Rules Playground

Uji perilaku Rules Playground dengan contoh skenario dan aturan dasar berikut.

Cloud Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /some_collection/{document} {
      allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
      }
    }
  }

Realtime Database

 // These rules grant access to a node matching the authenticated
 // user's ID from the Firebase auth token
 {
   "rules": {
     "users": {
       "$uid": {
         ".read": "$uid === auth.uid",
         ".write": "$uid === auth.uid"
       }
     }
   }
 }
 

Cloud Storage

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/path/to/file.txt"
    match /user/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • Di editor Rules, tambahkan aturan yang diberikan di atas.

  • Pilih get dari menu drop-down Simulation type dan masukkan jalur yang valid di kolom Location.

  • Aktifkan Authentication dan pilih jenis autentikasi dari menu drop-down Provider.

  • Masukkan detail ID pengguna dan klik Run.

Hasil simulasi akan muncul di bagian atas editor. Bergantung pada detail ID pengguna yang dimasukkan, Anda akan melihat banner yang mengonfirmasikan bahwa pembacaan berhasil diizinkan atau ditolak.