ここでは、angularFire を使用してデータを取得しています。
angular.module('FireApp', ['firebase'])
.controller('Document', function($scope, $routeParams, angularFire){
var url = "https://my-account.firebaseio.com/test" + "/" + $routeParams.data;
angularFire(url, $scope, data);
});
問題は、これが ' https://my-account.firebaseio.com/test/data ' とそのすべての子と孫などをロードすることです
. '/data' はオブジェクトの配列です。する必要はありません-文字列の配列である可能性が非常に高いです) "/data" の親に似ています:
data: ["0" : {
"data" : [...],
"meta" : {
"active" : false
},
"sign" : [...]
},
"1" : {
"data" : [...],
"meta" : {
"active" : true
},
"sign" : {...}
},
"2" : {
"data" : [...],
"meta" : {
"active" : false
},
"sign" : {...}
}]
基本的に、認証されていないすべての angularFire クライアントに、ブール値フラグ meta.active = true のデータ配列の要素のみを受信させたいと考えています。つまり、アクティブ フラグを決定する必要がありますが、その祖父母は angularFire リクエストでクライアントに送信されます。また、認証されていないクライアントは、データの書き込み/編集ができません。私が設定したいルールは、「「active = false」フラグが設定されているときはいつでも、クライアントが認証されていない限り、フラグの祖父母を angularFire クライアントに送信しないでください。」. そうです、ルールは絶対的ではなく相対的なものである必要があります。
認証されたクライアントのみがすべてのデータを受信/編集できる必要があります。
Firebase Simple Login とセキュリティ ルールでそのようなルールを作成できますか?
祖父母に対してこれができない場合は、「アクティブ」フラグを 1 レベル上に移動して、代わりにその親に影響を与えることができます。
時間をありがとう、
ジャレッド