安全规则对休息和网络的解释有何不同?

时间:2014-09-30 14:29:21

标签: firebase firebase-security

我试图通过附加<<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
 }
});

抛出权限被拒绝错误。有没有人有任何见解?

1 个答案:

答案 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'