我正在尝试通过我的应用程序中的搜索视图通过邮件获取特定用户。
我的数据库中有 7000 多个用户,使用此搜索视图需要 5 到 10 或 15 秒来过滤和获取数据
@Override
public boolean onQueryTextSubmit(String s) {
searchQuery.startAt(s).endAt(s+"\uf8ff").limitToFirst(3).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
UserPojo user = snapshot.getValue(UserPojo.class);
Log.i(TAG, "onDataChange: " + user.getEmail());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return false;
}
问题是过滤数据所需的时间(从 5 到 15 秒)
有没有用更好的查询更快地过滤?还是我需要首先获取所有数据,在本地存储,然后在客户端对其进行过滤?关于如何解决这个问题的任何建议?
我还注意到分析器每次搜索都需要 4 到 8mb 的网络才能完成,这只是一个简单的文本查询的大量网络使用。
慕的地10843
相关分类