如何快速获得搜索结果?

持续1

我在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章