以下を仮定します。Firebase:特定のデータを持つ子を除く親のすべての子ノードを読み取る方法
posts : {
"$postid":{
"meta":{
"state":true,
"text" :"I should be read",
},
"likes":{
"uid1":true,
"uid2":true,
},
},
"$postid":{
"meta":{
"state":false,
"text" :"I should be read",
},
"likes":{
"uid1":true,
"uid2":true,
"uid3":true,
},
}
}
私は親ノード( 'posts')に次のように問い合わせます。
- 状態=偽
- との投稿が最も好き
セキュリティルール
- とポストを優先出したままに読み取ることが偽==状態での投稿を拒否します。
は、ここで私はデータを照会しています方法をJavascriptのバージョンです。 ////$.fdr === firebase.database.ref();私は、ユーザーが投稿を削除し、後で削除取り消すことができるようにしたい:なぜこの
$.fdr("posts").orderByChild("time").limitToLast(20).once('value',function(r) {
var r = r.val();
if(r !== null){
///use r;
}
},function(e){
console.log(e);
});
。 削除するには、 "post.meta.state"の値を "false"に変更します。 "post.meta.state"はfalseですが、セキュリティルールはその投稿を読むことを許可してはいけません。
問題:私はポストのノードではなく、親ノード(「投稿」)内のルールを設定した場合、
"postid": {
".read":"data.child('state').val() == true"
}
、私は「.read」を制限することができますが、私は照会ます場合にのみ、記事を次のように
firebase.database.ref("posts/postid");
をそうでなければ、私のような親ノードからの照会しようとした場合:
firebase.database.ref("posts/"),
私は返信したくない投稿を除外することができるので、ルールを "投稿"の子から "投稿"(親)に昇格させる必要があり、子供のルールが無視され、そこに私は "状態" ==偽の返信投稿を拒否する方法を見つけることができないようです。
上記のこれまでのところ、私は迷ってしまいましたところ、正しい操作を行ってください私の理解に基づいています。
あなたはundoubtablyすでに何かをしようとしました。あなたが試したことを教えてください。少なくとも、あなたがどのプラットフォームをターゲットにしているかはわかります。しかし、より多くの可能性はまた、あなたを助ける方法のより良い考えを私たちに与えるでしょう。 –
@FrankvanPuffelen新しい編集をご覧ください。 – Relm