は、あなたがdatabase rulesを定義する必要があります。
ルールはJSON構造で定義され、現在のauth
情報を参照できます。たとえば、あなたが/users/<uid>
の下で、データベース内のユーザ情報を格納している場合は、以下のルールは、各ユーザーが自分の情報への読み取り/書き込みアクセスをし、他のユーザの情報へのアクセスを読んで付与します:
{
"rules": {
"users": {
".read": "auth != null"
"$uid": {
".write": "auth != null && auth.uid == $uid"
}
}
}
}
規則は、データを参照することができます既にデータベースに入っているため、特定のキーに既存のデータがない場合にのみ書き込みを許可することができます。つまり、更新を防ぐことができます。
同様に、ルールは格納される新しいデータを参照できるため、新しいデータが指定されていることを確認することができます。つまり、削除を防ぐことができます。
このようなルールは(/todos/<uid>/<todoId>
下に保存)ドスを作成することができるようになるが、どちらも更新も削除:
...
"todos": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
"$todoId": {
".write": "auth != null && auth.uid == $uid && data.val() == null && newData.val() != null"
}
}
}
...
JSON構造にルール定義を維持することが困難になることができます。 FirebaseのBoltツールは、より複雑なルールの定義に役立ちます。