2013-04-09 45 views
2

我正在使用Firebase簡單登錄使用電子郵件/密碼驗證。我在/ id/username中存儲一個名爲'username'的變量,以便每個用戶都有唯一的名稱。但是,用戶可以編輯該位置的值並輸入現有的用戶名。有沒有辦法禁止用戶更改他們的用戶名到現有的用戶名?即如果/ anyid/username/JOHN存在,則不允許更改。有沒有可以爲此編寫的規則?使用Firebase的用戶名簡單登錄(電子郵件/密碼)

預先感謝您。

回答

4

是的!您可以簡單地擁有一個.write規則,該規則要求該位置當前不存在任何數據。例如:

{ 
    "rules" : { 
    "$id" : { 
     "username" : { 
     ".write":"!data.exists()" 
     } 
    } 
    } 
} 
+0

嘿,謝謝你的回覆!但是,如果沒有通過JS控制檯分配用戶名,某人無法創建帳戶: var chatRef = new Firebase('https://whatever.firebaseio.com'); var authClient = new FirebaseAuthClient(chatRef,function(error,user){ (..) }); 然後爲自己指定他們想要的任何用戶名,即使其他人已經擁有另一個ID了嗎? – Gino 2013-04-09 19:57:26

+0

您可以有其他規則來驗證auth值與正在寫入用戶信息的內容相同。這裏有一些更復雜規則的示例:https://github.com/firebase/firefeed您還應該觀看我們的屏幕錄像,以指導您瞭解安全規則的工作原理:https://www.firebase.com/docs/security- quickstart.html – 2013-04-10 04:47:03

+0

爲什麼您使用寫操作而不是驗證操作?謝謝您的幫助! – Crashalot 2017-11-01 07:16:14

相關問題