Swift,Firebase。检查名称是否已存在不起作用

时间:2016-06-24 19:54:33

标签: swift firebase firebase-realtime-database

我试图创建一个应用程序,您必须选择一个团队名称,当用户输入他/她的团队名称时,我想检查该名称是否已被使用。

teamNameTextField是UITextField,由于某些原因,无论我在文本字段中键入什么内容,它都会打印"团队名称未被使用"。我不知道我在这里做错了什么,有人可以帮助我吗?

我的代码:

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
  }
}

1 个答案:

答案 0 :(得分:1)

我意识到了这个问题!

我尝试输入print(teamNameTextField.text),然后打印出来:"Optional("Test111")"

所以你必须在!之后加teamNameTextField.text,然后它才会打印"Test111"