2016-12-02 57 views
0

在我的iOS應用程序,用戶創建這也在Twitter用戶名相似特徵的用戶名。一旦被識別爲唯一的,它就會用updateChildValues以下面的簽名持久化到數據庫:(例如,用戶名是JogBloggs)。無法構建一個火力地堡數據庫安全規則正確

 ["usernames/": ["joebloggs: \(user.uid)"]] 

在我的FB我的數據庫安全規則,我想創建確保所上傳的UID的規則是一樣的當前用戶的UID。我怎麼能輸入一個安全規則來確保這一點?我下面的嘗試不起作用。

 "root.child('usernames').child(newData.val()).val() == auth.uid" 

我有以下的結構,我的數據庫

enter image description here

與相關的規則:

Firebase Security structure

乾杯

回答

1

好吧,如果我能那麼我將刪除這個問題! 答案是非常複雜和具有挑戰性.....與正確答案下面

"usernames": { 
    ".read": "auth != null", 
    ".write": "auth != null && auth.token.name == null", 
      "$username": { 
       ".validate": "$username.length >= 1 && $username.length <= 15 && 
          !root.child('usernames').child(newData.val().toLowerCase()).exists() && 
            newData.val() == auth.uid" 
     } 
    } 
+1

大聽說你找到了答案

newData.val() == auth.uid 

完整結構。在以後的文章中,請不要張貼文字的截圖,而是張貼文字本身。這使得它成爲可搜索的,並且使我們能夠輕鬆獲取代碼/ JSON來嘗試重現問題或在我們的答案中使用它。 –

+1

是的,不會再發生,並會改變它。順便說一句,在Udacity的真棒視頻系列! :) – Edward