【问题标题】: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");
这将通过您的查询搜索返回用户的用户名。