【发布时间】:2019-08-15 04:45:43
【问题描述】:
这是我的第一个问题,希望你能帮助我。
我一直在尝试为登录我的应用的当前用户获取特定路径。
我现在真的不知道我做错了什么,所以我将我的代码粘贴在这里。
func userRoleListener() {
guard let user = Auth.auth().currentUser else { return } .
Firestore.firestore().collection("users").document("sjbD5SvKTYHWBLhCqojs").getDocument { (snapshot, error) in
if let data = snapshot?.data() {
guard let isAdmin = data["isAdmin"] as? Bool else { return }
if isAdmin {
self.applyButton.isHidden = true
} else {
self.applyButton.isHidden = false
}
}
}
}
这是我创建用户的函数。
private func createUser() {
guard let nameAndLastname = nameAndLastnameTextField.text , let email = emailTextField.text , let password = passwordTextField.text , !nameAndLastname.isEmpty , !email.isEmpty , !password.isEmpty else {
simpleAlert(title: "Error", msg: "Debe completar todos los campos")
return
}
let newUserReference = Firestore.firestore().collection("users").document()
newUserReference.setData([
"nameAndLastname": nameAndLastname,
"email": email,
"password": password,
"isAdmin": false,
"timestamp": Timestamp()
])
}
这是我的登录操作:
@IBAction func signUpButtonPressed(_ sender: Any) {
guard let email = emailTextField.text , let password = passwordTextField.text , !email.isEmpty , !password.isEmpty else { return }
self.signUpButton.animateButton(shouldLoad: true, withMessage: "")
Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
if let error = error {
self.signUpButton.animateButton(shouldLoad: false, withMessage: "¡REGISTRAR!")
debugPrint(error.localizedDescription)
self.simpleAlert(title: "Error", msg: "Error al iniciar sesión, intente nuevamente en unos minutos")
return
}
self.signUpButton.animateButton(shouldLoad: false, withMessage: "")
self.createUser()
self.presentClientStoryboard()
}
}
这是我的数据库的图像:
【问题讨论】:
-
运行这段代码时出了什么问题?
-
我遇到的问题是当我尝试这个时: Firestore.firestore.collection("users").document(user.uid).getDocument() 我没有收到任何当前用户,但是当我直接前进并手动插入当前用户ID(“sjbD5SvKTYHWBLhCqojs”)时,该按钮被隐藏并且还从Firestore获取数据。
标签: swift firebase google-cloud-firestore