Dalam database Realtime Firebase, ada banyak Childs

Dan di Anak-anak itu ada beberapa lagi.

Aturan apa yang saya tambahkan jadi Baca = benar Pantat hanya tulis untuk anak "Murid" dan semua yang ada di anak itu

   "rules": 
{
".read": true,
".write": false
}
"Pupil": 
 {
  ".read": true,
  ".write": true
 }
}

Saya kehilangan ',' atau '}' yang Diharapkan.

0
Bassies 10 Juli 2020, 15:40

1 menjawab

Jawaban Terbaik

Aturan keamanan untuk Firebase Realtime Database seperti dalam format JSON, dan yang Anda miliki bukanlah JSON yang valid. Bahkan, itu tidak dekat.

Saya sangat merekomendasikan menggunakan alat yang dapat menunjukkan kepada Anda apakah kode Anda adalah JSON yang valid (pencarian cepat dapat membantu Anda menemukan salah satunya).

JSON valid terdekat yang setara dengan apa yang Anda miliki tampaknya:

{
  "rules": {
    ".read": true,
    ".write": false
  },
  "Pupil": {
    ".read": true,
    ".write": true
  }
}

Meskipun ini sekarang adalah JSON yang valid, ini bukan seperangkat aturan keamanan yang valid, karena Anda hanya dapat memiliki satu peristiwa tingkat atas (nama rules) dalam aturan keamanan, dan sisa aturan Anda harus berada di bawah itu .


Untuk membuatnya menjadi aturan keamanan yang valid, susun simpul Pupil di bawah rules tingkat atas:

{
  "rules": {
    ".read": true,
    ".write": false,
    "Pupil": {
      ".read": true,
      ".write": true
    }
  }
}

Jadi, Anda harus dapat menyimpan di atas di konsol Firebase tanpa kesalahan.


Anda dapat menyederhanakan ini sedikit untuk:

{
  "rules": {
    ".read": true,
    "Pupil": {
      ".write": true
    }
  }
}

Izin baca tingkat atas secara otomatis diwarisi oleh semua node di bawah root. Dan secara default tidak ada izin, jadi ".write": false pada root tersirat di sini.

0
Frank van Puffelen 10 Juli 2020, 13:44