我有以下代码将用户注册到firebase ...
FIRAuth.auth()?.createUserWithEmail(email.text!, password: password.text!) {(user, error) in
if let error = error {
print(error.localizedDescription)
if error.localizedDescription == "FIRAuthErrorCodeEmailAlreadyInUse"
{
//sign in here?
}
}
else {
print("User signed in!")
}
} }
else{
print("You left email/password empty")
}
我会添加什么,以便在用户已创建时自动登录?
感谢。
答案 0 :(得分:0)
您可以使用Firebase提供的任何身份验证方法。例如。在你的情况下,这个是最合适的:
Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
// ...
}
修改强>
您发布的注册方法的错误响应将告诉您给定用户是否已存在。在这种情况下,您可以在回调中自动调用signIn方法。
查看official docs,我看到你应该寻找的错误代码是FIRAuthErrorCodeEmailAlreadyInUse。
答案 1 :(得分:0)
您可以事先检查require 'prawn'
data = {"id"=>123456, "documentKey"=>"xyz", "globalId"=>"xyz", "itemType"=>1234, "project"=>123, "createdDate"=>"2015-02-20T00:11:56.000+0000", "modifiedDate"=>"2015-02-20T00:11:56.000+0000", "lastActivityDate"=>"2016-03-02T16:23:52.000+0000", "createdBy"=>1234, "modifiedBy"=>12342, "fields"=>{"name"=>"Introduction", "globalId"=>"Text", "documentKey"=>"Text-2", "description"=>" Some introduction"}}
Prawn::Document.generate('example.pdf') do
text "Project: #{data['project']}"
text "Item Type: #{data['itemType']}"
text "Description: #{data['fields']['description']}"
end
是否不是currentUser
:
nil
来自Firebase文档:
您还可以使用currentUser属性获取当前登录的用户。如果用户未登录,则currentUser为nil:
答案 2 :(得分:0)
另一种方法是使用fetchProvidersForEmail:completion:https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIRAuth#-fetchprovidersforemailcompletion来检查电子邮件是否首先存在。
这将返回与该电子邮件关联的提供者ID列表。如果你得到密码'在列表中,该电子邮件已存在电子邮件/密码帐户,您可以致电signIn(withEmail: email, password: password)
。否则,您拨打createUserWithEmail(email, password: password)