【问题标题】:How can I setup password renewal emails using Firebase?如何使用 Firebase 设置密码续订电子邮件?
【发布时间】:2021-03-14 20:58:00
【问题描述】:

我已经设置了一个 IBAction 按钮,因此一旦选择,就会出现一个包含文本字段的 UIAlertController,允许用户输入他们的电子邮件。输入此电子邮件并选择“提交”后,应向“答案”值发送一封电子邮件,但在测试期间似乎没有发送任何电子邮件。我怎样才能让它正常工作?

@IBAction func forgottenPassword(_ sender: Any) {

        let ac = UIAlertController(title: "Your account email", message: nil, preferredStyle: .alert)
        ac.addTextField()

        let submitAction = UIAlertAction(title: "Submit", style: .default) { [unowned ac] _ in
            let answer = ac.textFields![0]
           
                Auth.auth().sendPasswordReset(withEmail: "\(answer)") { error in
                
                }
            }
        
        ac.addAction(submitAction)

        present(ac, animated: true)      
       
   }

【问题讨论】:

    标签: ios swift firebase firebase-authentication


    【解决方案1】:

    线索是你使用了"\(answer)",大概是因为编译器抱怨UITextField不是String

    ac.textFieldsUITextField 的数组。您需要访问UITextFieldtext 属性以获取它保存的字符串。此外,这是一个可选字符串(尽管在实践中,如果文本字段为空,它通常是一个空字符串 ("") 而不是 nil)。

    您可以使用带有条件展开的可选链接来获取值并避免强制展开:

    @IBAction func forgottenPassword(_ sender: Any) {
            
        let ac = UIAlertController(title: "Your account email", message: nil, preferredStyle: .alert)
        ac.addTextField()
            
        let submitAction = UIAlertAction(title: "Submit", style: .default) { _ in
            if let answer = ac.textFields?.first?.text {
                Auth.auth().sendPasswordReset(withEmail: answer) { error in
                        // TODO: Handle a non-nil error.
                }
            }
        }
            
        ac.addAction(submitAction)
            
        present(ac, animated: true)
            
    }
    

    【讨论】:

    • 谢谢@paulw11 - 我收到了 - ac.addAction(submitAction) - 行的“变量在其自己的初始值内使用”错误。
    • 抱歉,缺少一个 }。此外,您不需要 [unowned ac] - 您无法从本地警报视图控制器创建泄漏。
    • 不用担心@paulw11 - 即使我添加了一个结束 } 我收到以下错误“可选类型的值'[UITextField]?'必须解包以引用 - ac.textFields.first?.text - 行的已包装基本类型“[UITextField]”的成员“第一个”。我认为我需要先打开它是正确的吗?我不太确定该怎么做。
    • 抱歉,缺少一个?
    • “?”在哪里?需要去吗?
    猜你喜欢
    • 2021-10-05
    • 1970-01-01
    • 2017-04-30
    • 2020-06-09
    • 2018-12-21
    • 2015-08-13
    • 1970-01-01
    • 2019-07-21
    • 2016-07-19
    相关资源
    最近更新 更多