首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >类型为“AuthDataResult”的Firebase错误值没有成员“displayName”

类型为“AuthDataResult”的Firebase错误值没有成员“displayName”
EN

Stack Overflow用户
提问于 2018-05-27 23:35:24
回答 2查看 1.2K关注 0票数 5

我正在跟随Rob Percival的iOS开发人员课程,目前我被困在“优步克隆”项目中。以下是问题代码的摘录。出现错误的代码行是:

if user?.displayName == "Lehrer" {

它位于注释//LOG IN之后

@IBAction func topTapped(_ sender: Any) {
    if emailTextField.text == "" || passwordTextField.text == "" {
        displayAlert(title: "Achtung", message: "Du musst sowohl eine Email-Adresse als auch Passwort eingeben!")
    } else {
        if let email = emailTextField.text {
            if let password = passwordTextField.text {
                if signUpMode {
                    // SIGN UP
                    Auth.auth().createUser(withEmail: email, password: password, completion: { (user, error) in
                        if error != nil {
                            self.displayAlert(title: "Error", message: error!.localizedDescription)
                        } else {

                            if self.benutzerLehrerSwitch.isOn {
                                //Lehrer
                                let req = Auth.auth().currentUser?.createProfileChangeRequest()
                                req?.displayName = "Lehrer"
                                req?.commitChanges(completion: nil)
                                self.performSegue(withIdentifier: "lehrerSegue", sender: nil)
                            } else {
                                // RIDER
                                let req = Auth.auth().currentUser?.createProfileChangeRequest()
                                req?.displayName = "Benutzer"
                                req?.commitChanges(completion: nil)
                                self.performSegue(withIdentifier: "benutzerSegue", sender: nil)
                            }
                        }
                    })
                } else {
                    // LOG IN
                    Auth.auth().signIn(withEmail: email, password: password, completion: { (user, error) in
                        if error != nil {
                            self.displayAlert(title: "Error", message: error!.localizedDescription)
                        } else {
                            if user?.displayName == "Lehrer" {
                                // BENUTZER
                                self.performSegue(withIdentifier: "benutzerSegue", sender: nil)
                            } else {
                                // LEHRER
                                self.performSegue(withIdentifier: "lehrerSegue", sender: nil)
                            }
                        }
                    })
                }
            }
        }
    }
}

基本上,我允许用户注册为两种不同类型的角色("Lehrer“或"Benutzer")中的一种,根据他们选择的角色,他们应该在登录后看到不同的屏幕。我使用Firebase作为这段代码的后端,如果我删除了错误的代码,那么注册用户的帐户就可以正常工作。有谁有什么想法吗?

您可以在此屏幕截图中看到确切的外观:

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50553748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档