2016-01-22 16 views
0

我不知道如果我做錯事或者這是錯誤行爲:一套安全規則PERMISSION_DENIED的createUser回調返回內部

我設置了以下安全規則:

{ 
    "rules": { 
    "test": { 
     "$location": { 
     ".read": true, 
     ".write": true 
     } 
    }, 
    "test1": { 
     "$location": { 
     ".read": "$location === auth.uid", 
     ".write": "$location === auth.uid" 
     } 
    } 
    } 
} 

我然後做的createUser和回調我發出:

testRef.child('test/bla/bla/bla').set('val1', 

testRef.child('test1/' + authData.uid + '/bla/bla/bla').set('val1', 

但是test1失敗! 在控制檯中我看到PERMISSION_DENIED

你可以看到這樣的演示在這裏:http://jsfiddle.net/xvajnxya/

如果不是我做的createUser然後UNAUTH然後authWithPassword,然後設置,那麼測試和test1的工作 - 這證明我說安全規則很好。

您可以通過重新設置setval(authData)在小提琴中測試;和unremarking unauthAuthwithpassSet(authData);

我希望能對此反饋意見。

回答

0

您編寫的代碼按預期工作。 Firebase.createUser()僅創建用戶,不驗證用戶

+0

在這種情況下,第一套如何運作? – kofifus

+0

因爲第一組不需要認證。任何人都可以寫入'/ test/$ location'。如果你想要認證,你需要使用'auth!= null'而不是'true'。 –