在这里,我使用 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 简单登录和安全规则制定此类规则吗?
如果祖父母无法做到这一点,则可以将“活动”标志向上移动一级以影响其父母。
谢谢你的时间,
贾里德