如何在 Firebase 的数据库中反映 select UISegmentedControl 的结果

How to reflect select result of UISegmentedControl in Firebase'S Database

您好,我是编程 (Swift/Firebase) 和开发应用程序方面的新手。现在正在尝试使用户配置文件连接到数据库。我可以对 TextFields 数据执行此操作,但不能对 Male/Female 开关的 UISegmentedControl 执行相同操作。

@IBAction func saveProfileButton(_ sender: Any) {
        if nameTextField.text! == "" {
            print("enter something")
        } else {
            addUser()
        }
}

@objc func valuChange() {
    switch genderSegControl.selectedSegmentIndex {
        case 0:
            let zero = String("Male")
        case 1:
           let one = String("Female")
        default:
            return
    }
}

func addUser() {
    let  genderChanged = genderSegControl?.addTarget(self, action: #selector(MainViewController.valuChange), for: UIControlEvents.valueChanged)
    let userGender = String(describing: genderChanged!)
    let uidUser = Auth.auth().currentUser?.uid
    let user = ["...": ..., "userGender":  userGender as! String] 
    refUsers.child(uidUser!).setValue(user)
}

但是当我检查 Firebase 的数据库节点时,它仅显示 "userGender: Optional(())"。我尝试了许多不同的方式,但无法将其显示为 "userGender: Male""userGender: Female".

如有任何建议,我们将不胜感激。

  1. 在您的 ViewController 中为 UISegementControl 创建出口,比如 genderControl
  2. addUser()函数中,使用UISegementControlselectedIndex来确定值如下,假设index 0是针对MALE & 1 用于 FEMALE 那么:

    let gender = genderControl.selectedIndex == 0 ? "Male" : "Female"

  3. 现在在用户字典中设置这个值gender,即

    let user = ["...": ..., "userGender": gender]