所以我正在尝试创建一个带有登录和注册屏幕的应用程序,并且我创建了一个防护功能来创建和添加一个新帐户,我可以稍后登录。
这就是实施
import FirebaseFirestore
import FirebaseAuth
import Foundation
class RegisterViewViewModel: ObservableObject{
@Published var name = ""
@Published var email = ""
@Published var password = ""
init(){}
func register(){
guard validate() else{
return
}
Auth.auth().createUser(withEmail: email, password: password) { [weak self] result, error in
guard let userId = result?.user.uid else{
return
}
self?.insertUserRecord(id: userId)
}
}
private func insertUserRecord(id: String){
let newUser = User(id: id,
name: name,
email: email,
joined: Date().timeIntervalSince1970)
let db = Firestore.firestore()
db.collection("users")
.document(id)
.setData(newUser.asDictionary())
}
private func valdiate() -> Bool{
guard !name.trimmingCharacters(in: .whitespaces).isEmpty,
!email.trimmingCharacters(in: .whitespaces).isEmpty,
!password.trimmingCharacters(in: .whitespaces).isEmpty else{
return false
}
guard email.contains("@")&&email.contains(".")else{
return false
}
guard password.count>=6 else {
return false
}
return true
}
}
错误出现在“guard validate()”,它显示“在范围内找不到validate”
您的函数声明中有一个拼写错误:
private func valdiate() -> Bool{
应该是:
private func validate() -> Bool{