Есть метод, но почему то он всегда возвращает 0, а список заполняется в чем проблема?
public List<CategoryList> getTodayItems() {
categoriesList = new ArrayList<>();
String userID = user.getUid();
// Write a message to the database
myRef = fbDatabase.getReference(userID);
myRef.keepSynced(true);
myRef.child(DBHelper.TABLE_OPERATIONS).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
categoriesList = new ArrayList<>();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
CategoryList post = postSnapshot.getValue(CategoryList.class);
categoriesList.add(post);
}
Log.d(LOG_TAG, "categoriesList size after = " + categoriesList.size());
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w(LOG_TAG, "Failed to read value.", error.toException());
}
});
Log.d(LOG_TAG, "categoriesList size inReturn = " + categoriesList.size());
return categoriesList;
}
Так как вы планируете написать у вас не получится из-за того, что действия в разных потоках происходят. Вам надо перестроить логику так, чтобы нигде не было нужды синхронно получать данные, получаемые асинхронно.
Я бы это сделал с помощью RxJava как-то так:
Observable.<List<CategoryList>>create(subscriber -> {
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
firebaseDatabase.getReference()
.child(DBHelper.TABLE_OPERATIONS)
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<CategoryList> categoriesList = new ArrayList<>();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
CategoryList post = postSnapshot.getValue(CategoryList.class);
categoriesList.add(post);
}
subscriber.onNext(categoriesList);
subscriber.onCompleted();
}
@Override
public void onCancelled(DatabaseError databaseError) {
subscriber.onError(databaseError.toException());
}
});
})
.subscribe(
data -> {//вот обновлённые данные из Firebase},
e -> {//какая-то огибка произошла}
);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В тестовом приложении я пытаюсь работать с RecyclerView и прокручивать recycleview items синхронноОднако во время горизонтальной прокрутки у меня появляется...
Есть сайт на битриксе, к которому подключена база данныхЧерез сайт можно заказать еду (сайт службы доставки), заказ вносится в базу
Столкнулся с странной ситуациейПытаюсь разобраться с мержем дева в мою ветку с тестами