Данные из Firebase не отображаются в UITableView - PullRequest
0 голосов
/ 08 июля 2019

У меня есть таблица с настраиваемой ячейкой, и она получает данные из firebase.Когда я запускаю приложение, в табличном представлении ничего не отображается.Ни один из моих операторов печати после моей второй ссылки на базу данных не работает, но ссылка на базу данных верна.Вот моя структура базы данных (я упростила ее настолько, насколько могла):

{
   "Classes" : {
"-LiGRdN6aoXHfE9wn0TW" : {
  "Students" : {
    "J526G6DB3uONdNM2hzgDYdgokd93" : "J526G6DB3uONdNM2hzgDYdgokd93",
    "UhTQgJ4jugMqFtEZK8CsIkTqQl22" : "UhTQgJ4jugMqFtEZK8CsIkTqQl22"
  },
  "class_info" : {
    "date_clasname" : "mm",
    "room_number" : "jj",
    "subject" : "Science",
    "teacher" : "mm",
    "uid" : "-LiGRdN6aoXHfE9wn0TW"
  }
},
"-LiGRe3e1YF_HFrHKMgi" : {
  "Students" : {
    "J526G6DB3uONdNM2hzgDYdgokd93" : "J526G6DB3uONdNM2hzgDYdgokd93",
    "UhTQgJ4jugMqFtEZK8CsIkTqQl22" : "UhTQgJ4jugMqFtEZK8CsIkTqQl22"
  },
  "class_info" : {
    "date_clasname" : "mm",
    "room_number" : "jjhh",
    "subject" : "Science",
    "teacher" : "mm",
    "uid" : "-LiGRe3e1YF_HFrHKMgi"
  }
},
  "Users" : {
"J526G6DB3uONdNM2hzgDYdgokd93" : {
  "Classes" : {
    "-LiGRdN6aoXHfE9wn0TW" : "-LiGRdN6aoXHfE9wn0TW",
    "-LiGRe3e1YF_HFrHKMgi" : "-LiGRe3e1YF_HFrHKMgi"
  },
  "User_info" : {
    "email" : "bob@gmail.com",
    "grade" : "9",
    "name" : "bob"
  }

Вот мой код для действия, которое отображает информацию в UITableView:

  class class_custom_cell2: UITableViewCell {
    @IBOutlet weak var cc: UILabel!
    @IBOutlet weak var teacher: UILabel!
    @IBOutlet weak var rn: UILabel!    
}      
class Home: UIViewController , UITableViewDelegate, UITableViewDataSource{
var classes2 = [Class]()
@IBOutlet weak var tb_yourClasses: UITableView!


    override func viewDidLoad() {
        super.viewDidLoad()
       tb_yourClasses.delegate = self
        tb_yourClasses.dataSource = self

        fetchClass2()
    }

    func fetchClass2() {


        Database.database().reference().child("Users").child(Auth.auth().currentUser!.uid).child("Classes").observe(.childAdded, with: { (snapshot) in

       if let dictionary = snapshot.value as? String{
                let class_id = dictionary
         print(class_id)
       let b = Database.database().reference().child("Classes").child(class_id).child("class_info")
        print(b)
        b.observe(.childAdded, with: { (snapshot) in
            if let dictionary = snapshot.value as? [String: AnyObject] {
                let class_object = Class(dictionary: dictionary)
                print(class_object)
                self.classes2.append(class_object)



                DispatchQueue.main.async(execute: {
                    self.tb_yourClasses.reloadData()
                })
            }

            }, withCancel: nil)

            }

        }, withCancel: nil)
    }

    @objc func handleCancel() {
        dismiss(animated: true, completion: nil)
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        print(classes2)
        return classes2.count
       }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! class_custom_cell2

        let data_class2 = classes2[indexPath.row]
    print(data_class2)
        cell.cc?.text = data_class2.date_clasname
        cell.teacher?.text = data_class2.teacher
        cell.rn?.text = data_class2.room_number

        return cell
    }   
 }

СпасибоВы и дайте мне знать, если у вас есть какие-либо вопросы!

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