if-else语句在textFieldShouldReturn函数的闭包内执行两次

时间:2016-10-19 21:51:55

标签: swift firebase firebase-realtime-database

我有UItextField名为addUserField的用户可以在用户点击输入后输入电子邮件我正在检查我的Firebase数据库中是否存在该电子邮件,如果是,则必须打印&# 34; OK" \ email,如果没有,那么它应该打印" BAD" \ email。但是我的下面的代码没有按照预期的方式执行,它以某种方式执行if条件两次而且我无法找出原因。

因此,如果正在打印的数据库中存在电子邮件:

OK xyz@abc.com
BAD xyz@abc.com

如果正在打印的数据库中不存在该电子邮件:

BAD abc@xyz.com
BAD abc@xyz.com

任何人都可以帮我弄清楚if语句执行两次的原因以及我如何才能使它只在电子邮件存在时打印OK或者如果不存在则打印。

func textFieldShouldReturn(_textField: UITextField!) -> Bool {
        var email: String = ""
        if let userEmail = addUserField.text{
        email = userEmail
        }
        let userRef = ref.child("users");
        userRef.queryOrderedByChild("role").queryEqualToValue("User").observeEventType(.Value, withBlock: {
            snapshot in
            for child in snapshot.children {
                let username = child.value["email"] as! String
                if (email == username){
                    print ("OK \(email)")
                }
                else {
                    print ("BAD \(email)")
                }
            }
        })
       return true
    }

0 个答案:

没有答案