0Pricing
Firebase Auth & Realtime Database Apps · Pelajaran

Menguji dan Men-debug Aturan Keamanan

Bangun keyakinan terhadap aturan Realtime Database dengan menyimulasikan permintaan, menggunakan Rules Playground, menulis pengujian otomatis dengan emulator, dan membaca pesan penolakan.

Menguji dan Men-debug Aturan Keamanan adalah pelajaran Firebase Auth & Realtime Database Apps gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Firebase Auth & Realtime Database Apps, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Firebase Auth & Realtime Database Apps mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Why Test Your Rules

Security Rules are the only thing standing between your data and the open internet. A single mistake can expose private data or block legitimate users.

Testing rules is as important as testing code, and Firebase gives you several tools to do it.

The Rules Playground

The Firebase console includes a Rules Playground where you simulate a single read or write without touching real data.

  • Pick read or write
  • Set a path and auth state
  • See instantly whether it is allowed or denied

Simulating Auth State

In the simulator you can run as an unauthenticated user or supply a fake auth.uid and custom claims. This is how you verify that user-based access control behaves correctly.

Reading a Denial

When a request is denied, the simulator highlights the exact rule that evaluated to false. Use this to pinpoint why a legitimate request is being blocked.

The Local Emulator

For repeatable, automated testing, use the Firebase Local Emulator Suite. It runs the Realtime Database and its rules entirely on your machine, with no cloud costs.

firebase emulators:start --only database

Writing a Rules Test

The @firebase/rules-unit-testing library lets you assert that operations succeed or fail. This is the gold standard for rule confidence.

import { assertSucceeds, assertFails } from '@firebase/rules-unit-testing';

await assertSucceeds(authedDb.ref('users/alice').set({ name: 'Alice' }));
await assertFails(authedDb.ref('users/bob').set({ name: 'hax' }));

Test Both Directions

Good rule tests check both outcomes:

  • Authorized users can do allowed actions (no false denials)
  • Unauthorized users cannot do forbidden actions (no security holes)

Testing only the happy path hides the dangerous gaps.

Testing Validation Rules

Beyond access, test your .validate rules: confirm that malformed data is rejected and well-formed data is accepted.

await assertFails(db.ref('age').set('not-a-number'));
await assertSucceeds(db.ref('age').set(30));

Common Rule Bugs

Watch for these frequent mistakes:

  • Rules cascade: a true .read higher up overrides children
  • Forgetting that read and write rules are independent
  • Assuming auth is non-null without checking

Debugging with newData

Inside write rules, newData represents what the write would produce and data is the current value. Logging your reasoning about these in test cases clears up many confusing denials.

{
  "posts": {
    "$id": {
      ".write": "!data.exists() || data.child('owner').val() === auth.uid"
    }
  }
}

CI Integration

Run your emulator-based rule tests in continuous integration so a risky rule change is caught before it reaches production. This turns security into a regression-tested guarantee.

Quick Check

Test your understanding of rules testing.

Recap

You can now validate rules with confidence.

  • Use the Rules Playground for quick manual checks
  • Use the Local Emulator for repeatable runs
  • Write tests with assertSucceeds / assertFails
  • Cover both access and validation, both directions
  • Run rule tests in CI

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menguji dan Men-debug Aturan Keamanan” gratis?

Ya — teks lengkap “Menguji dan Men-debug Aturan Keamanan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Firebase Auth & Realtime Database Apps, upgrade ke CoddyKit PRO. Kursus Firebase Auth & Realtime Database Apps mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menguji dan Men-debug Aturan Keamanan”?

Bangun keyakinan terhadap aturan Realtime Database dengan menyimulasikan permintaan, menggunakan Rules Playground, menulis pengujian otomatis dengan emulator, dan membaca pesan penolakan. Kamu berlatih Firebase Auth & Realtime Database Apps dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Firebase Auth & Realtime Database Apps?

Tidak diperlukan pengalaman sebelumnya. Firebase Auth & Realtime Database Apps di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Menguji dan Men-debug Aturan Keamanan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Firebase Auth & Realtime Database Apps ini?

Ya. Setiap pelajaran Firebase Auth & Realtime Database Apps menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memahami Sintaks Aturan Keamanan
  2. Kontrol Akses Berbasis Pengguna
  3. Memvalidasi Data dengan Aturan
  4. Menguji dan Men-debug Aturan Keamanan
← Kembali ke Firebase Auth & Realtime Database Apps