我试图通过附加<<firebaseurl>>/test
来阅读.json
,但无论我做什么,我都会继续获得许可。
我的安全规则:
{
"rules": {
"test" : {
".read": "auth != null",
".write": "auth != null"
},
"users" : {
"$userid": {
".read": "$userid === auth.uid",
".write": "$userid === auth.uid"
}
}
}
}
使用js访问数据按预期工作:
ref.child("test").once( 'value', function(snap){
console.log(snap.val());
});
但是当我尝试使用json
获取数据时$.ajax({
url: 'https://instance.firebaseio.com/test.json',
dataType: 'json' ,
type: 'GET',
error: function() {
//handle it
},
success: function(data) {
//do something
}
});
抛出权限被拒绝错误。有没有人有任何见解?
答案 0 :(得分:3)
您的ajax请求正在返回权限被拒绝,因为您有一个需要身份验证的安全规则,但您尝试通过HTTP获取数据而不进行任何身份验证。您需要在请求中传递身份验证令牌,您可以使用Firebase Secret通过简单登录的客户令牌生成器创建该身份验证令牌(请查看此小提琴:http://jsfiddle.net/firebase/XDXu5/embedded/result/)。你可以通过导航到&#34; Secrets&#34;找到你的秘密。 Firebase信息中心中的标签。所以你的请求看起来像是:
url: 'https://instance.firebaseio.com/test.json?auth=TOKEN'