Firebase使用电子邮件和密码创建用户给我字符串必须是解包错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase使用电子邮件和密码创建用户给我字符串必须是解包错误相关的知识,希望对你有一定的参考价值。
Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
// ...
guard let user = authResult?.user else { return }
}
我从Firebase复制并粘贴了这一行并遇到了这些错误。
答案
这些错误是由您的电子邮件和密码是可选的(String?vs String)引起的。在将它们传递给createUser
之前,您需要打开它们。您可以在进行调用之前添加行guard let email = email, let password = password else { return }
以删除错误。然后,根据您获取值的方式,您可能希望显示用户消息(如果它们为空)。
另一答案
@Jeremiah是对的。您正尝试将“可选”字符串传递到Firebase函数中。
可选意味着它可以有一个值,也可以是零。您可以通过几种不同的方式打开这两个字符串(电子邮件和密码):
guard let email = email?.trimmingCharacters(in: .whitespacesAndNewlines).lowercased(),
!emailAddress.isEmpty else {
// Uh oh email address is empty! Show an error.
return
}
guard let password = password, !password.isEmpty else {
// Uh oh password is empty! Show an error.
return
}
login(with: emailAddress, password: password)
要么:
if let email = email?.trimmingCharacters(in: .whitespacesAndNewlines).lowercased(),
let password = password, !email.isEmpty, !password.isEmpty {
// Both email and password have values, do stuff:
login(with: emailAddress, password: password)
return
} else {
// Either email or password are empty, show an error
return
}
/// Asks Firebase to login our user.
private func login(with email: String, password: String) {
Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
if let error = error, !error.isEmpty {
// Error signing in!
}
}
}
以上是关于Firebase使用电子邮件和密码创建用户给我字符串必须是解包错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Firebase 9 电子邮件和密码创建用户并将该用户的其他数据保存在 firebase db 集合中?
Firebase Android -- 在 Kotlin 中使用电子邮件和密码创建用户
如何合并两个 Firebase 帐户(一个使用电子邮件创建,另一个使用电话号码创建)?