我在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”行旁边。 我敢肯定有解决此问题的另一种方法,但是我找不到运气。 (我是编程的新手,如果这是非常基本的东西,请对不起。)
答案 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来获得所需的行为。