我是Firebase的新手,因此任何提示都將不勝感激。現在我正在使用Firebase登錄&身份驗證來處理我的所有身份驗證。但我想存儲一些用戶數據,比如用戶名DOB,created_at ...我已經創建了一個用戶節點,並且正在使用我在註冊或登錄時獲得的唯一ID附加子節點給用戶。但是我想確保系統中沒有重複的用戶名。如何在寫入服務器之前檢查用戶名是否已存在?確保在Firebase中創建新用戶的唯一用戶名(Swift)
回答
我目前正在調查同樣的事情。我的問題是我也想啓用持久性,所以我需要知道可以離線訪問的內容。如果您使用的持久性,我也建議禁止特定的操作,比如檢查用戶名是否存在,如果您的客戶端離線,您可以通過聽「的.info /連接」做進一步的詳細位置:
https://firebase.google.com/docs/database/ios/offline-capabilities#section-connection-state
我給這家個人的工作流程如下:
- 登錄到用戶的帳戶
- 檢查用戶是否已經有一個用戶名
檢查火力數據庫,看看他們的用戶信息包括用戶名:
DB/users/*userUID*/username != nil
- 如果他們沒有用戶名,然後提示他們設置一個用戶名。
當他們設定自己的用戶名,檢查是否存在在用戶名:
DB/usernames/*username*/ != nil
如果它不存在,然後寫在上面籤兩個數據庫位置的用戶名和用戶ID。
例如。
user.uid = wewe32323
用戶名= scuba_steve
DB/usernames/scuba_steve = wewe32323
DB/users/wewe32323/username = scuba_steve
所以,現在你有DB /用戶名引用您可以快速檢查,看看是否有人有一個用戶名已經和你也有數據庫/用戶/您可以快速找到給定用戶的用戶名。
我不會說這是傻瓜證明,因爲我仍然關注併發請求。我正在研究的當前問題是,假設您將用戶名關聯刪除到特定用戶,用戶可以依賴其數據庫的本地副本錯誤地聲明他們仍然被分配給該用戶名。
您可以查看數據庫寫入規則,以禁止任何人修改現有數據(強制只有在沒有現有數據的情況下才能寫入數據庫/用戶名目錄。這樣可以防止首先設置用戶名的人重寫,我認爲這是重要的一步。
這也可能是值得探討的交易:
https://firebase.google.com/docs/database/ios/save-data#save_data_as_transactions
但我相信正確的寫入規則段落上面提到應該允許可靠的寫作。
而且這一點,我勸存儲的用戶名和小寫插入/小寫字母檢查在'DB /用戶名/目錄,並在'DB /用戶/'目錄輸入的情況下,這樣,「史酷比」和「史酷比」不能註冊到兩個不同的用戶,但你仍然保留其所需資本時,您從用戶信息中檢索用戶的用戶名。 –
我已經更有效地將它實現到了我最近的一個應用程序中,我肯定會推薦使用事務。如果您需要進一步的建議或者我的實施,請隨時發表評論或與我交談。我上面提到的大多數值和數據庫檢查方法仍然相關,但更適合在Transaction塊內調用。 –
我在這裏詳細記錄在本:http://stackoverflow.com/q/37543872/5960425 –
可以檢查用戶名存儲這樣的:
let username = "fred"
self.ref.child("users/\(username)").observeSingleEventOfType(.Value, withBlock: { snapshot in
if snapshot.exists() {
如果關閉返回快照存在,那麼用戶名「弗雷德」的存在。
- 1. Swift中的Firebase用戶名唯一性
- 2. Facebook omniauth:確保唯一的用戶名
- 3. Php確保唯一的用戶名
- 4. Firebase中的唯一用戶名
- 5. Firebase創建用戶swift不起作用
- 6. 創建新用戶firebase
- 7. 即使用戶名是唯一的,也要創建用戶ID?
- 8. Swift Firebase在創建新用戶時說出現內部錯誤
- 9. 無法在Firebase上創建新用戶
- 10. 如何存儲使用Swift 3在Firebase中創建另一個新用戶的登錄用戶的UID?
- 11. 在OpenLDAP中使用唯一的uid創建用戶帳戶
- 12. Android Firebase創建並顯示用戶名
- 13. Swift&Firebase |使用用戶名檢查用戶是否存在
- 14. Firebase在創建新用戶時註銷當前用戶
- 15. 如何確保唯一用戶註冊
- 16. 如何在會員資格中創建用戶名不唯一?
- 17. 如何爲沒有用戶名的用戶創建一個唯一的ID - PHP
- 18. 在Firebase中創建用戶Android Android
- 19. 用戶註冊創建唯一的URL
- 20. firebase PHP:創建用戶
- 21. Firebase創建用戶「手動」
- 22. Firebase如何創建用戶?
- 23. Firebase在創建帳戶時創建額外的用戶數據
- 24. 唯一的用戶名值
- 25. Firebase - 每個用戶的唯一ID
- 26. 創建名新用戶,用戶名等在火力
- 27. 使用Firebase實施唯一的用戶名simplelogin
- 28. 如何創建Firebase用戶帳戶
- 29. 使用Google AppScript在Firebase中創建新用戶
- 30. 使用Swift以唯一的UID作爲密鑰來查詢Firebase中的用戶
你需要建立一個數據結構和安全規則這一點。見http://stackoverflow.com/questions/25294478/how-do-you-prevent-duplicate-user-properties-in-firebase –