使用Firebase和Swift分配,发送和检索用户特定的ID标签

时间:2018-06-28 15:55:17

标签: swift firebase user-input

我在Firebase数据库中有两个不同的用户类,我希望通过在创建时为每个用户分配一个唯一的5个字符代码来“连接”。本质上,一个用户类别将能够在文本字段中键入唯一代码,然后将其与另一用户类别中的可用用户进行比较。有没有办法使用Swift 4和Firebase建立这种系统?

  let button = UIButton(frame: CGRect(x:100, y:400, width: 150.00, height:30.00))
    button.backgroundColor = UIColor.red
    //80, g: 101, b: 161
    button.setTitle("Register", for: UIControlState())
    button.translatesAutoresizingMaskIntoConstraints = false
    button.setTitleColor(UIColor.white, for: UIControlState())
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
    button.addTarget(self, action: #selector(verifyCode), for: .touchUpInside)

    self.view.addSubview(button)
}

    //setupView()



@objc func verifyCode(){
    let code = UITextField.text
    let reference = Database.database().reference().child("doctor").child("Code")
        if code == reference.key {
            print ("success")
        }
        print("Form is not valid")
        return

我通过手动将值插入一个用户类来尝试了该概念的基本版本,该用户类应检查并验证数据库中分配的相应值。但是我遇到了以下问题:

“二进制运算符'=='不能应用于'(UITextField)->(UITextRange)->字符串类型的操作数”和'String'“

此错误显示在“如果代码== reference.key”行旁边。 我敢肯定有解决此问题的另一种方法,但是我找不到运气。 (我是编程的新手,如果这是非常基本的东西,请对不起。)

1 个答案:

答案 0 :(得分:0)

因此,看起来代码中可能存在多个问题,因为我认为reference.key不会为您带来所需的价值。话虽如此,当前的问题是函数verifyCode()没有检查类的UITextField。您应该使用UITextField的名称来代替UITextField。例如:

@IBOutlet var myTextField: UITextField!

// ...
@objc func verifyCode(){
  let code = myTextField.text
  let reference = Database.database().reference().child("doctor").child("Code")
    if code == reference.key {
      print ("success")
    }
  print("Form is not valid")
  return
}

回到给定的另一个问题

let reference = Database.database().reference().child("doctor").child("Code")

reference.key只会给您密钥。在这种情况下,"Code"。您可能需要更多地研究the guides并使用some examples来获得所需的行为。