首页 > 解决方案 > 实现 Searchbar 到 firebase recyclerview 来搜索节点 android studio

问题描述

我正在尝试实现一个搜索栏,它将搜索节点而不是子节点。如果一个节点有一个子节点然后执行查询并搜索特定子节点的值,我已经能够实现搜索。我无法实现相同的搜索节点值。任何人都可以帮我知道这是否可能,如果可以,该怎么做?

我用于实现基于子值的搜索栏的代码是

FirebaseRecyclerOptions<Contacts> options = new FirebaseRecyclerOptions.Builder<Contacts>()
            .setQuery(UsersRef.orderByChild("username").startAt(search).endAt(search + "\uf8ff"), Contacts.class)
            .build();

使用此代码,我可以通过在搜索栏中输入用户名来搜索数据库。

我很想实现基于节点的搜索功能,即当我在搜索栏中输入节点的值时,查询应该返回那个特定的节点。那可能吗?

标签: androidfirebasefirebase-realtime-databaseandroid-recyclerview

解决方案


您可以使用 orderByKey() 方法按节点值查询(假设您使用节点值来提及对象的键)。

FirebaseRecyclerOptions<Contacts> options = new FirebaseRecyclerOptions.Builder<Contacts>()
        .setQuery(UsersRef.orderByKey().startAt(search).endAt(search + "\uf8ff"), Contacts.class)
        .build();

推荐阅读