В соответствии с вашим комментарием, в котором вы говорите, что получаете эти значения, но по-прежнему получаете ошибки, это связано с тем, что API Firebase является асинхронным, то есть к моменту создания следующего объекта:
new DataPoint(pointValue, pointValue1), true, 200
Данные, поступающие из базы данных, еще не загружены.Быстрое решение этой проблемы - переместить все эти строки кода:
GraphView graph = findViewById(R.id.graph);
LineGraphSeries<DataPoint> series = new LineGraphSeries<>(new DataPoint[]{
new DataPoint(0, 1),
new DataPoint(1, 5),
new DataPoint(2, 3)
});
graph.addSeries(series);
graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setYAxisBoundsManual(true);
graph.getViewport().setMinY(0);
graph.getViewport().setMaxX(0);
graph.getViewport().setMaxX(200);
//appending data
series.appendData(new DataPoint(pointValue, pointValue1), true, 200);
Внутри метода onDataChange()
, в противном случае я рекомендую вам увидеть последнюю часть моего ответа из этого пост , в котором я объяснил, как это можно сделать с помощью пользовательского обратного вызова.Вы также можете взглянуть на это видео для лучшего понимания.