Firebase + iOS Charts 3.0 вызов - PullRequest
       13

Firebase + iOS Charts 3.0 вызов

0 голосов
/ 27 ноября 2018

Я ищу способ графического вывода данных 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.Текущая настройка показана ниже enter image description here

Я ввел много «временных данных» в ожидании использования различных функций запроса Firebase, включая «equalTo», startAt, «endAt» и т. Д.и т.д., чтобы заполнить график.Является ли это правильным подходом?

2) как мне заполнить массив «unitSold», чтобы данные соответствовали месяцу на диаграмме «годового обзора» (важно, чтобы показывалось ноль, когда не было заказа на"кофе" в этом месяце)?3) И соответствует ли день месяца на графике «Ежемесячный обзор»?

Спасибо всем за помощь!

...