Ios 将Firebase加载到Tableview中

Ios 将Firebase加载到Tableview中,ios,swift,firebase,tableview,Ios,Swift,Firebase,Tableview,我正在尝试将数据从Firebase加载到我的TableView和FSCalendar中。我不确定我做错了什么。我想我的问题可能来自于我的重新加载,但我以前就这样构建过它们,而且从来没有遇到过问题。因此,如果有人能阅读并看到发生了什么 我的问题是:Firebase的数据没有填充我的tableview中的单元格,事件的点也没有显示,日历是FScalendar。我在文档中发现,此函数将使它们出现,但我没有看到它们。谢谢你的帮助 我的Firebase数据模型: { "calendareve

我正在尝试将数据从Firebase加载到我的TableView和FSCalendar中。我不确定我做错了什么。我想我的问题可能来自于我的重新加载,但我以前就这样构建过它们,而且从来没有遇到过问题。因此,如果有人能阅读并看到发生了什么

我的问题是:Firebase的数据没有填充我的tableview中的单元格,事件的点也没有显示,日历是FScalendar。我在文档中发现,此函数将使它们出现,但我没有看到它们。谢谢你的帮助

我的Firebase数据模型:

{
  "calendarevents" : {
    "2021-01-12" : {
      "eventColor" : "red",
      "eventDate" : "2021-01-12",
      "eventName" : "Enrollment"
    },
    "2021-01-15" : {
      "eventColor" : "red",
      "eventDate" : "2021-01-15",
      "eventName" : "First Day"
    }
  }
}
我的事件处理程序:

func retrieveEventsFromDatabase() {
        dbReference = Database.database().reference().child("calendarevents")
        dbReference.observe(DataEventType.value, with: { [weak self] (snapshot) in
            
            guard snapshot.childrenCount > 0 else { return }
            
            var events: [EventsDataModel] = []
            for event in snapshot.children.allObjects as! [DataSnapshot]
            {
                let object = event.value as? [String: AnyObject]
                
                let eventName = object?["eventName"]
                let eventDate = object?["eventDate"]
                let eventColor = object?["eventColor"]
                
                let event = EventsDataModel(eventName: eventName as! String, eventDate: eventDate as! String,eventColor: eventColor as! String)
 
                events.append(event)
   
            }
            
            DispatchQueue.main.async {
                self?.eventsTable.reloadData()
                self?.calendar.reloadData()
            }
        })      
    }
My Tableview和FScalendar功能:

func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventDefaultColorsFor date: Date) -> [UIColor]? {
        let dateString = self.dateFormatter2.string(from: date)
        
        for data in eventsArray {
            
            if data.eventDate.contains(dateString) {
                
                if data.eventColor == "red" {
                    return [UIColor.red]
                }
                return [UIColor.black]
            }
        }
        
        return nil
        
    }
    
    func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
        let dateString = self.dateFormatter2.string(from: date)
        
        for data in eventsArray {
            
            if data.eventDate.contains(dateString) {
                return 1
            }
        }
            return 0
    }

    
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        print(eventsArray.count)
        return eventsArray.count
        
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let friend = eventsArray[indexPath.row].eventName
        
        let cell = eventsTable.dequeueReusableCell(withIdentifier: "eventCell", for: indexPath) as! EventsTitleTableViewCell
        
        cell.eventTitleLabel?.text = friend
         return cell
    }
}
未加载的视图:

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

    }

您似乎忘记填充self.eventsArray

在重新加载tableView之前,请执行以下操作:

self.eventsArray = events 

您是否尝试在retrieveEventsFromFirebase()中的for-in循环中打印一些不同的值?例如,打印(“对象”)。控制台上打印的是什么?