检查 firebase 查询(对于 firebase 选项)returns 是否为空(不存在)

Check if firebase query (for firebase options) returns empty (does not exist)

我正在使用 firebaseRecyclerAdapter (firebaseOptions) 的过滤器查询。

因为我使用的是 searchView,如果查询存在,回收器会更新每个键入的字母。

问题是,如果查询不存在,我想清除回收器。

如何添加检查查询是否成功?

我正在执行搜索,如果查询存在我填充回收视图,如果查询不存在我想清除回收视图。

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();
}

如果查询没有结果,FirebaseRecyclerViewAdapter将已经清除现有数据。这种情况不需要你自己处理。

如果你想在没有数据的时候做一些额外的工作,你可以重写适配器中的onDataChanged 方法class。

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.
        // ...
    }
};

另请参阅 data and error events 上的 FirebaseUI 文档,我从中获取了上述代码。