我正在爲我的iOS應用程序使用Firebase身份驗證。現在我想檢查輸入的電子郵件地址是否可用。我發現我必須爲此使用createUserWithEmailAndPassword
。但問題是我不想通過密碼。我只想檢查使用電子郵件。我怎樣才能做到這一點?如何檢查iOS上的Firebase中是否已使用電子郵件地址?
回答
您需要使用fetchProvidersForEmail:完成: https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIRAuth#-fetchprovidersforemailcompletion
它會返回與該電子郵件相關的供應商ID列表。如果您在列表中獲得「密碼」,則該電子郵件已存在電子郵件/密碼帳戶,您可以顯示登錄頁面。
不幸的是,您無法通過Firebase執行此操作。電子郵件帳戶還需要密碼。
如果你不希望用戶必須輸入密碼,你可以使用其他帳戶選項,如Facebook,谷歌,Twitter的等
其實我的設計就像有第一頁,用戶將輸入電子郵件地址。如果該電子郵件已被註冊,則用戶導航到下一個頁面,該頁面是用戶輸入密碼並登錄到應用程序的密碼頁面。 @bradley –
火力地堡中身份驗證的用戶帳戶已經可以電子郵件地址被驗證,它不一定是一個電子郵件+密碼帳戶。 To verify the email address for a user call user.sendEmailVerification()
。
如果要在註冊用戶之前檢查電子郵件地址是否已被使用,Firebase Admin SDK的方法爲look up a user by their email address:admin.auth().getUserByEmail(email)
。此方法需要管理權限,並且(像所有Admin SDK一樣)只應在受信任的環境中運行 - 通常是您控制的服務器或Firebase的Cloud Functions。
最後注意:請注意,即使您在註冊之前檢查電子郵件地址是否可用,在您撥打createUserWithEmailAndPassword()
時,電子郵件地址可能會被其他用戶聲稱。 Jen評論說:如果電子郵件地址已被使用,您還需要處理createUserWithEmailAndPassword()
引發的錯誤。
謝謝!任何其他選項,而不使用'admin.auth()。getUserByEmail(email)'? –
你只需要創建一個引用,而用戶在FirebaseDB的父「用戶」中註冊,其中的電子郵件ID已用firebase應用程序註冊爲「email」,並在檢查電子郵件時運行以下查詢調用或不
let databaseReff = Database.database().reference().child("users")
databaseReff.queryOrdered(byChild: "email").queryEqual(toValue: self.emailTextField.text!).observe(.value, with: { snapshot in
if snapshot.exists(){
//User email exist
}
else{
//email does not [email id available]
}
})
以下是(斯威夫特4)你可能會尋找Firebase function的結構:
Auth.auth().fetchProviders(forEmail: emailAddress, completion: {
(providers, error) in
if let error = error {
print(error.localizedDescription)
} else if let providers = providers {
print(providers)
}
})
如果電子郵件地址已註冊用戶,你會得到一個列表的電子郵件地址的提供者 是用來。否則,提供者列表將爲空,因此電子郵件地址未被註冊。
- 1. 如何檢查電子郵件地址是否已被使用Firebase
- 2. Swift Firebase檢查電子郵件是否已被使用
- 3. 如何檢查電子郵件地址是否是假的?
- 4. 檢查電子郵件地址是否已存在db
- 5. 如何檢查電子郵件地址是否屬於Gmail
- 6. 如何檢查電子郵件地址是否存在codeigniter
- 7. 如何檢查電子郵件地址是否正常工作?
- 8. 我們如何檢查電子郵件地址是否有效?
- 9. 如何檢查電子郵件地址是否存在。驗證
- 10. 檢查電子郵件地址是否爲子域名
- 11. 如何檢查電子郵件地址是否存在?使用C#,ASP.NET
- 12. 檢查是否有已經註冊的電子郵件地址(包括點等)
- 13. 的Rails:如何檢查是否電子郵件已經排隊
- 14. 檢查一些電子郵件地址是否在gravatar註冊?
- 15. 檢查電子郵件地址是否屬於雅虎
- 16. 檢查字符串是否包含電子郵件地址
- 17. 驗證電子郵件地址 - 檢查是否爲空
- 18. 如何檢查Throwable是否是無效電子郵件地址的結果
- 19. 異步檢查是否已使用AngularJS發送電子郵件
- 20. PHP檢查電子郵件是否已被使用
- 21. 如何使用Firebase驗證電子郵件地址
- 22. 如何檢查電子郵件地址是否有效Lync用戶?
- 23. 如何檢查電子郵件是否已發送
- 24. 如何檢查電子郵件是否已成功發送?
- 25. 如何檢查Siebel是否已成功發送電子郵件?
- 26. 如何檢查使用電子郵件的用戶是否已經存在?
- 27. 如何檢查後臺是否有新電子郵件 - ios
- 28. 確定是否電子郵件地址的郵件列表地址或個人電子郵件地址
- 29. 如何檢查是否輸入正確的電子郵件地址?
- 30. 如何檢查edittext的文本是否爲電子郵件地址?
如果發送電子郵件,Firebase身份驗證已經返回錯誤。您爲什麼要在用戶輸入密碼之前進行檢查? –
你想查看電子郵件是什麼意思?您是否確定電子郵件已被使用?或者是什麼? – UmarZaii
其實我的設計就好像有第一頁用戶輸入電子郵件地址。如果該電子郵件已被註冊,則用戶導航到下一個頁面,該頁面是用戶輸入密碼並登錄到應用程序的密碼頁面。所以在第一頁上,我想檢查該電子郵件是否已註冊。 @JenPerson –