Как мне ждать выполнения запросов Firebase? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть несколько кнопок в моем приложении для Android, и при нажатии на них необходимо извлечь данные из базы данных Firebase, и полученные данные добавляются в список, который должен быть передан в качестве аргумента другому конструктору класса.Но выборка данных происходит в другом потоке по умолчанию, так как запросы Firebase являются асинхронными.Как мне убедиться, что список был добавлен с данными из другого потока перед передачей его в конструктор?

1 Ответ

0 голосов
/ 25 февраля 2019

Это простое использование oncompletelistener вы можете сослаться на этот пример:

db=FirebaseFirestore.getInstance();
                db.collection("Order").document(TableListFragment.tableno)
                        .update(
                                "Items", FieldValue.arrayUnion("ABCD"),
                                "Quantity", FieldValue.arrayUnion("34")
                        ).addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        Toast.makeText(getContext(),"Item Added",Toast.LENGTH_LONG).show();
                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                   Log.i("onFailure:",e.toString());
                    }
                });
...