Назначение, отправка и получение пользовательских идентификационных тегов с использованием Firebase и Swift - PullRequest
0 голосов
/ 28 июня 2018

У меня есть два разных пользовательских класса в моей базе данных 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?' и "String" "

Эта ошибка отображается рядом со строкой «if code == reference.key». Я уверен, что есть другой подход к этой проблеме, но мне не повезло в поиске решения. (Я относительно новичок в программировании, извините, если это что-то очень простое)

1 Ответ

0 голосов
/ 28 июня 2018

Похоже, что в коде может быть более одной проблемы, потому что я не думаю, что 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". Возможно, вам придется больше изучить руководства и поиграть с некоторыми примерами , чтобы получить искомое поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...