2016-06-24 104 views
1

我正在尝试制作应用程序,您必须选择团队名称,并且在用户输入他/她的团队名称时,我想检查名称是否已存在使用。Swift,Firebase。检查名称是否已经存在不起作用

teamNameTextField是UITextField,由于某种原因,无论我在文本字段中输入什么,它都会打印出“Team name is not in use”。我不知道我在这里做错了什么,有人能帮助我吗?

我的代码:

rootRef.child("teams").queryOrderedByChild("teamName").queryEqualToValue(teamNameTextField.text).observeSingleEventOfType(.Value, withBlock: { (snap) in 

    if (snap.value is NSNull) { 
     print("Team name is not in use") 
    } else { 
     print("Team name is already in use") 
    } 
}) 

我的JSON数据树:

{ 
    "teams" : { 
    "pbXvXYOKmJQqwSQZ9IlBykG7x1P2" : { 
     "teamName" : "Test111" 
    }, 
    "owidUDkEnbCOsmNSoSFu2o2iu4y38RKJNF" : { 
     "teamName" : "Test222" 
    }, 
    "pdnJCDmcdjsiHDFb8349HGD8372bfdhb" : { 
     "teamName" : "Test123" 
    } 
    } 
} 

我的数据库规则:

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 
+0

当你硬编码在你的代码的teamname会发生什么? like'“Test111”' – adolfosrs

+0

谢谢,你让我意识到了这个问题,我会用解决方案回答我自己的问题 – Benja0906

回答

1

我意识到这个问题!

我试着键入print(teamNameTextField.text),它打印:"Optional("Test111")"

所以,你必须把!teamNameTextField.text,那么将只打印"Test111"