childByAutoId
は、同じタイプの複数の子ノードにノードを保存する場合に役立ちます。つまり、各子はそれぞれ固有の識別子を持ちます。特定の子の値にアクセスするためのFirebaseルール
List:{
KJHBJJHB:{
name:List-1,
owner:John Doe,
user_id:<Fire base generated User_id>
},
KhBHJBJjJ:{
name:List-2,
owner:Jane Lannister,
user_id:<Fire base generated User_id>
},
KhBHJZJjZ:{
name:List-3,
owner:John Doe,
user_id:<Fire base generated User_id>
}
}
私は、次のコードの助けを借りてList
にアクセスしようとしています:
let ref = FIRDatabase.database().reference(withPath: "/List")
アプリにログインして、現在のユーザーがJohn Doe
です。ユーザーがリストにアクセスすると、所有者がJohn Doe
(つまりList-1
& List-3
)のすべての子List
が残り、他の子値は無視されます。
私のアプリケーションでこれを行う必要がありますか、これはFirebaseのセキュリティルールで実現できますか?
私の現在のルール定義は次のとおりです。
"List":{
".read": "root.child('List/'+root.child('List').val()+'/user_id').val() === auth.uid" }
しかし、このルールは私に任意の成功を与えていません。どのように希望の結果を達成するための任意のアイデア?
クエリを使用してみましたか? – gasho
@gashoはい、クエリを使って、ブランチ全体をプルダウンして、必要なものだけを残すことができます。 しかし、実際に私は自分のアプリケーション側でクエリを実行する必要はありませんので、firebase自体から必要なデータを取得しようとしています。 –