Возможно, вы захотите изменить свой displayRecord
метод на получение идентификатора записи ("-Lq_y67Rndy3BLyaKA7Q"), чтобы вы видели только одну запись за раз вместо данных каждого пациента в вашей системе. Затем вам нужно преобразовать значение снимка в словарь, соответствующий типам, хранящимся в вашей базе данных. Это строка guard let dict = snapshot.value as? [String:String] else { return }
.
func displayRecord(entryId: String) {
Database.database().reference().child("Patient_Data/\(entryId)").observeSingleEvent(of: .value) { (snapshot) in
guard let dict = snapshot.value as? [String:String] else { return }
let name = dict["name"]
let icNumber = dict["icNumber"]
let gender = dict["gender"]
let phoneNumber = dict["phoneNumber"]
let medicationAllergic = dict["medicationAllergic"]
self.welcomeLabel.text = "Name, \(name)"
self.welcomeLabel.text = "IC Number, \(icNumber)"
self.welcomeLabel.text = "Gender, \(gender)"
self.welcomeLabel.text = "Phone Number, \(phoneNumber)"
self.welcomeLabel.text = "Medication Allergic, \(medicationAllergic)"
self.welcomeLabel.text = "Smoker Record, \(smokerRecord)"
UIView.animate(withDuration: 0.5, animations: {
self.welcomeLabel.alpha = 1
})
}
}
Кажется, вы думаете, что значение вашего снимка будет иметь тип String
. Это должно быть причиной того, что вы приводите значение в виде строки к нескольким свойствам (нет смысла делать это, даже если значение вашего снимка было строкой).
Возможно, вы также захотите рассмотреть, все лиэти значения должны храниться в виде строк на вашем сервере.