Отвечая на ваш вопрос в комментариях: вам не нужно передавать параметры в скобках, потому что вы настраиваете обратный вызов.
Но ваша проблема проистекает из приоритета методов. Значение еще не там, когда вы звоните recordData
.
Сценарий состоит в том, что в recordData
вы выполняете строку getPrice()
, но выполнение не ожидает завершения getPrice()
, потому что это обратный вызов, и значение будет возвращено, как только оно будет получено, что может быть долго после. Чтобы доказать это, вы можете посмотреть свой журнал. Скорее всего, этот журнал:
Log.d(TAG, "recordData: price = " + price);
будет до этого:
Log.d(TAG, "getPrice: price = " + price);
Так что вам лучше всего выполнить recordData
, когда вы точно знаете, что значение готово, или вызвать его внутри onDataChange
.