Database is empty after asynchronous call

Currently, I have the following code in my cellForRowAt.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

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

    var totalSum = 0.0

    cell.monthLabel.text = months[indexPath.row]

    ExpensesAdditions().retrieveMonthlySum(month: months[indexPath.row],year: "\(currentYear)"){ (sum) in
        totalSum += sum

        if indexPath.row == 12 {
            ExpensesAdditions().retrieveYearlySum(year: "\(self.currentYear)"){ (sum) in
                cell.totalSpentLabel.text = "Total Spent:"+ExpensesAdditions().defaultCurrencySymbol!+ExpensesAdditions().convertToMoney(sum)
                tableView.reloadData()
            }
            cell.totalAmountLabel.text = ExpensesAdditions().defaultCurrencySymbol!+ExpensesAdditions().convertToMoney(totalSum)
            if totalSum < 0 {
                cell.totalAmountLabel.textColor = UIColor.red
                tableView.reloadData()

            }
            else if totalSum >= 0 {
                cell.totalAmountLabel.textColor = UIColor(red:0.49, green:0.83, blue:0.13, alpha:1.0)
                tableView.reloadData()

            }
            cell.totalAmountLabel.isHidden = false
            cell.monthAmountLabel.isHidden = true
            cell.isUserInteractionEnabled = false
        }
    }

    var temporary = 0.0

    ExpensesAdditions().retrieveMonthlySum(month: months[indexPath.row],year: "\(currentYear)") { (sum) in
        temporary = sum
        var temporary2 = ExpensesAdditions().convertToMoney(temporary)
        cell.monthAmountLabel.text = ExpensesAdditions().defaultCurrencySymbol!+temporary2

        ExpensesAdditions().retrieveMonthlySpent(month: self.months[indexPath.row],year:"\(self.currentYear)"){ (sum) in

                cell.totalSpentLabel.text = "Total Spent:"+ExpensesAdditions().defaultCurrencySymbol!+ExpensesAdditions().convertToMoney(sum)
                tableView.reloadData()
            }
            cell.totalAmountLabel.isHidden = true
            cell.monthAmountLabel.isHidden = false

        if temporary < 0 {
            cell.monthAmountLabel.textColor = UIColor.red
        }

        else if temporary >= 0 {
            cell.monthAmountLabel.textColor = UIColor(red:0.49, green:0.83, blue:0.13, alpha:1.0)
        }
        tableView.reloadData()

}

return cell

}

This is after I have implemented completion handlers in my functions, because they were integrated with Firebase.

However I have been trying to solve a problem for almost a week now, that my tableview just shows up empty. I don't understand why. If someone could help that would be greatly appreciated.