Насколько я понимаю, Firebase Realtime Database Transaction.Handler doTransaction не работает в основном потоке пользовательского интерфейса (см. link).Выполнение работы в фоновом потоке базы данных базы данных Firebase
Допустимо ли использовать эту нить внутри doTransaction для выполнения некоторой работы, которая займет несколько секунд?
public Transaction.Result doTransaction(MutableData mutableData) {
SomeClass p = mutableData.getValue(SomeClass.class);
//-- do something here that will take a few seconds
someLongTask(p);
mutableData.setValue(p);
return Transaction.success(mutableData);
}
Под «приемлемым», я имею в виду, это единственное влияние на отзывчивость моей другой базы данных Firebase?
Есть ли лучший способ сделать это?
Я думаю, да, мы могли бы сделать это, как doTranscation является фоновым потоком, поэтому мы могли бы сделать процесс, который не будет связан с UI – Jai