2014-09-30 70 views
2

我想通過追加.json來讀取<<firebaseurl>>/test,但我無論做什麼都會被拒絕。安全規則解釋爲休息和網絡不同?

我的安全規則:

{ 
"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 
} 
}); 

拋出一個權限被拒絕錯誤。有沒有人有任何見解?

回答

3

您的ajax請求正在返回權限被拒絕,因爲您的安全規則需要身份驗證,但您試圖通過HTTP獲取數據而無需任何身份驗證。您需要在您的請求中傳遞身份驗證令牌,您可以使用Firebase祕密通過簡單登錄的客戶令牌生成器創建該令牌(請查看此提琴:http://jsfiddle.net/firebase/XDXu5/embedded/result/)。您可以通過導航到Firebase控制檯中的「祕密」標籤找到您的祕密。因此,您的請求將如下所示:

url: 'https://instance.firebaseio.com/test.json?auth=TOKEN'