Я ищу способ графического вывода данных Firebase с помощью iOS Charts (Github) 3.0.В надежде добиться следующего:
1) показать общее количество проданных единиц за месяц, используя гистограмму с осью X, являющейся датой, начинающейся с 1-го числа этого месяца, и пользователь может провести пальцем / щелкнуть влево, чтобы проверить месяцдо, проведите пальцем / нажмите вправо, чтобы проверить следующий месяц.2) и, аналогично, общая годовая единица, проданная графически, используя гистограмму с осью X, являющейся месяцем.Снова проведите пальцем / нажмите влево или вправо, чтобы изменить год.
Код для создания гистограммы «годовой обзор» будет построен на этом коде:
let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
override func viewDidLoad() {
super.viewDidLoad()
barChartView.delegate = self
barChartView.xAxis.valueFormatter = self
let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]
setChart(values: unitsSold)
}
func setChart(values: [Double]) {
barChartView.noDataText = "You need to provide data for the chart."
let chartData = BarChartDataSet()
for (i, val) in values.enumerated(){
_ = chartData.addEntry(BarChartDataEntry(x: Double(i), y: val))
}
barChartView.data = BarChartData(dataSet: chartData)
barChartView.xAxis.labelPosition = .bottom
barChartView.xAxis.labelTextColor = UIColor.white
barChartView.leftAxis.labelTextColor = UIColor.white
barChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0)
chartData.colors = [UIColor(red: 230/255, green: 126/255, blue: 34/255, alpha: 1)]
chartData.valueTextColor = UIColor.white
}
}
extension AdmissionOverviewViewController: IAxisValueFormatter{
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return months[ Int(value) % months.count]
}
}
Учитывая этот код, я ищу совет по
1) как лучше структурировать мою базу данных firebase.Текущая настройка показана ниже 
Я ввел много «временных данных» в ожидании использования различных функций запроса Firebase, включая «equalTo», startAt, «endAt» и т. Д.и т.д., чтобы заполнить график.Является ли это правильным подходом?
2) как мне заполнить массив «unitSold», чтобы данные соответствовали месяцу на диаграмме «годового обзора» (важно, чтобы показывалось ноль, когда не было заказа на"кофе" в этом месяце)?3) И соответствует ли день месяца на графике «Ежемесячный обзор»?
Спасибо всем за помощь!