所以我真的很挣扎,我不知道为什么。
我尝试了从文本字段强制用户名(电子邮件地址)到字符串的不同方法。我只是不能得到该死的东西转换或接受输入为一个字符串。在此期间,我一直在努力尝试获取此功能,但是我写了其余的登录功能,但这是阻止它工作或让我看到其他错误。
中出现 Auth.auth().signIn(withEmail: username, password: password, completion: { user,
错误
我的文本字段称为用户名。我已经尝试过转换(String(用户名)),作为String,等等,我尝试创建var并让它成为String但这只会产生更多错误我认为这个东西已经腐败了!
请帮忙。
答案 0 :(得分:0)
如果您有一个名为var list = Protected(["item1"])
// Get value:
let items = list.value
// Set value:
list.value = ["item1", "item2"]
// Read block:
list.read { items in
print(items)
}
// Write block:
list.write { items in
items.append(...)
}
的{{1}},您可以通过UITextField
获取文本字段中的文字,该文字会返回username
。
请参阅https://developer.apple.com/documentation/uikit/uitextfield/1619635-text
答案 1 :(得分:0)
func performLogin() {
//Logging In
Auth.auth().signIn(withEmail: username, password: password, completion: { user, error in
if (error != nil){
errorLabel = error1 //"There has been an Error " + "No User Found"
//Could Not Login, Attempt to Create user
//Creating Account
Auth.auth().createUserWithEmail(self.username, password: self.password!, completion: { user, error in
答案 2 :(得分:0)
因为UITextField
不是String
,但它的值是一个名为text
的字符串。要做到这一点只需更改代码
Auth.auth().signIn(withEmail: username.text, password: password.text, completion: { user,...
但是,正如您所提到的text
是一个可选字符串,这就是您收到错误的原因,该函数期待一个显式的字符串
UITextField
的文字值是可选的,这意味着您可以保证其值不会为零。您应该阅读有关Swift和可选vs显式的基础知识的更多信息,但这是一个简单的解决方案。
在登录中传递变量之前,您可以使用guard
声明解开它们
guard let usernameString = username.text else {
// Handle no username, show an alert etc
return
}
guard let passwordString = password.text else {
// Handle no password, show an alert etc
return
}
Auth.auth().signIn(withEmail: usernameString, password: passwordString, completion: { user,...
答案 3 :(得分:0)
嘿所以我一直在Firebase中构建我的应用程序,在尝试使用电子邮件创建用户时,我遇到了与文本字段等相同的问题。我把它构建成一个函数,就像一个梦想......
func signIn() {
Auth.auth().signIn(withEmail: emailTextField.text!, password: passwordTextField.text!) { (user, error) in
print(user?.uid)
if error != nil {
self.displayAlert(title: "Error", message: (error!.localizedDescription))
} else {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let loggedInView = storyboard.instantiateViewController(withIdentifier: "Today")
self.present(loggedInView, animated: true, completion: nil)
}
}
}
这是一个很好的简单方法。
希望有所帮助。