【问题标题】:Android - Firebase RecyclerView SearchAndroid - Firebase RecyclerView 搜索
【发布时间】:2017-08-30 19:46:01
【问题描述】:

我正在开发一个应用程序,该应用程序已经在 Firebase 中注册了新客户端。我能够使用 FirebaseUI 在 RecyclerView 中从 Firebase 加载信息,但我还需要进行搜索。

但我仍然怀疑如何最好地做到这一点,如果有人有任何例子,它总是有用的。

我正在考虑使用Retrofit,通过链接https://appname-f7ei5.firebase.com/clients 得到JSON,可以吗?

或者我必须创建一个RecyclerView.Adapter 和一个ViewHolder,但是我如何直接从 Firebase 加载信息?

对于搜索,最好的方法是在Adapter中使用getFilter()

【问题讨论】:

  • 嗯,这可能是一个重复的问题。尝试搜索一些:google.nl/… 不管怎样,我会给你一些代码来启动你需要的东西。

标签: android firebase android-recyclerview retrofit firebaseui


【解决方案1】:

这就是我在 FireBase 数据库上获取帖子标题所做的。尝试与 (child) 和 orderByChild 一起玩,你会看到它是如何工作的。换句话说,将child 想象为firebase 数据库头部的根,然后将其折叠并使用orderByChild 来获取根下的项目。

Query queryRef = mReference.child("posts").orderByChild("title").startAt(query).endAt(query + "\uf8ff");
                    queryRef.addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {

                            if (dataSnapshot.hasChildren()) {

                                for (DataSnapshot postsSnapshot : dataSnapshot.getChildren()) {
                                    final Post post = postsSnapshot.getValue(Post.class);
 // and the rest ...
..
..
..

在你的情况下,它会是:

Query queryRef = mReference.child("users").orderByChild("username").startAt(query).endAt(query + "\uf8ff");

这将通过您的查询搜索返回用户的用户名。

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    相关资源
    最近更新 更多