省略した構成Firebaseリアルタイムデータベースルール(すべては所有者だけを読みますが、編集することができます)
{
"rules": {
"items": {
".read" : true,
"$uid": {
".read" : true,
".write": "auth != null && auth.uid == $uid"
}
}
}
}
検証および他のディレクトリを支配します。 /アイテム/ USER1/ITEM1 /アイテム/ user2の/ ITEM1
すべて読むことができるアイテムのディレクトリとすべてのユーザーのアイテム(無プライベート項目)私は必要ない何
?
プロパティ
としてuserIdを持つアイテム"items" : {
"item1": {},
"item2": {}
}
のフラット配列
"item1" : {
"uid": "userId"
}
ユーザーのみ作成したアイテムは、それを削除/編集することができますが、すべてはそれを見ることができます。
私は、このような
"public_items": {
"item1": {},
"item2": {}
}
"items": {
"userId": {
"item1": {},
"item2": {},
}
}
として別のディレクトリにある二重の項目を考えていた。しかし、それはない良いアイデアのように思えます。
ルールはアトミックに適用されます。つまり、その場所にルール がない場合、またはアクセスを許可する親ロケーションにルールがない場合、読み取りまたは書き込みの 操作はすぐに失敗します。影響を受けるすべての 子パスがアクセス可能な場合でも、親ロケーションでの読み取りは完全に失敗します 。 https://firebase.google.com/docs/database/security/securing-data#read_and_write_rules_cascade
ルールを各アイテムに適用できない場合、別のオーナーとアイテムディレクトリを作成する方法はありますか。