我在firebase数据库中有一个对象数据库,并且需要一个函数来返回一些搜索结果。如果我收到一个字符串以在对象的“标题”方面搜索某个子字符串,则需要返回满足该条件的所有对象的列表。我目前正在详尽地进行此操作,即检查每本书的字段并将其添加到列表中。
不幸的是,这种方法的速度非常糟糕:随着列表的增大,生成该列表所花费的时间也无法接受。但是,一种可接受的解决方案是一次返回一个对象,以便动态增加列表。在我看来,普通的搜索功能似乎正在使用此功能,并且视频/音频缓冲也必须连续获取该数据。
但是我不知道如何在Java和Android上实现这一点。什至没有类似的事情发生在我身上,但是我敢肯定有一种方法可以做到。有什么建议么?
**编辑:**因此,我有一个adroid应用,需要在其上编写供我的伴侣使用的功能。此函数必须收集Book数据对象并返回它们。我目前在数据库中只有32本书,所以我认为我遇到的任何时间沉没都是由于从Firebase获取数据。必须有某种方式一次交付一本新书,以减少用户的感知等待时间,但是我不知道如何实现这一目标。
您可以使用Firebase sdk提供的orderByChild方法。这是一个示例代码:
titlesDatabaseReference.orderByChild("title").equalTo("the title you search for").
addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Do whatever you want with the snapshot
}
}
}
});
您还可以使用limitToFirst和limitToLast方法来限制搜索结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句