Проверьте, возвращает ли запрос firebase пустой (не существует) - PullRequest
0 голосов
/ 09 июля 2020

Я использую запрос фильтра для firebaseRecyclerAdapter (firebaseOptions).

Поскольку я использую searchView, ресайклер обновляется с каждой набранной буквой, если запрос существует.

Проблема в что я хотел бы очистить ресайклер, если запрос не существует.

Как я могу добавить проверку, чтобы узнать, успешен ли запрос или нет?

Я выполняю поиск, если запрос существует. Я заполняю recyclerview, если запрос не существует, я хочу очистить recyclerview.

public void fireSearch(String queryInput) {
        String start = queryInput.toUpperCase(), end = queryInput.toLowerCase() + "\uf8ff";
    Log.d("myTag", start + " " + end);
    firebaseQuery = databaseReference.orderByKey().startAt(start).endAt(end);
    searchRecyclerView.setVisibility(View.VISIBLE);
    FirebaseRecyclerOptions<BusinessDetails> options =
            new FirebaseRecyclerOptions.Builder<BusinessDetails>()
                    .setQuery(firebaseQuery, BusinessDetails.class)
                    .setLifecycleOwner(this)
                    .build();
}

1 Ответ

1 голос
/ 09 июля 2020

Если запрос не дал результатов, FirebaseRecyclerViewAdapter уже очистит существующие данные. Вам не нужно заниматься этим делом самостоятельно.

Если вы хотите проделать дополнительную работу при отсутствии данных, вы можете переопределить метод onDataChanged в своем классе адаптера.

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(options) {
    // ...

    @Override
    public void onDataChanged() {
        // Called each time there is a new data snapshot. You may want to use this method
        // to hide a loading spinner or check for the "no documents" state and update your UI.
        // ...
    }

    @Override
    public void onError(DatabaseError e) {
        // Called when there is an error getting data. You may want to update
        // your UI to display an error message to the user.
        // ...
    }
};

Также см. Документацию FirebaseUI по данным и событиям ошибок , откуда я получил приведенный выше код.

...