gpt4 book ai didi

java - 如何也按小写搜索 Firebase 文本?

转载 作者:行者123 更新时间:2023-12-01 17:51:07 24 4
gpt4 key购买 nike

我正在为我的 Android 应用程序使用 Firebase 数据库。我在应用程序中实现了搜索功能。在我的数据库中,仅当我开始使用大写“A”进行搜索时,才会显示每个以“A”开头的标题。当我输入小写“a”时,它显示没有找到结果。我也想启用对小写变体的搜索。请帮帮我。谢谢。这是我的搜索代码。

    private void firebaseUserSearch(String searchText) {

Toast.makeText(Idioms.this, "Started Search", Toast.LENGTH_LONG).show();

Query firebaseSearchQuery = mUserDatabase.orderByChild("Title").startAt(searchText).endAt(searchText + "\uf8ff");

FirebaseRecyclerAdapter<Blog,BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Blog, BlogViewHolder>(

Blog.class,
R.layout.bank_row,
BlogViewHolder.class,
firebaseSearchQuery
) {
@Override
protected void populateViewHolder(BlogViewHolder viewHolder, Blog model, int position) {

viewHolder.setDetails(getApplicationContext(), model.getTitle(), model.getDescription(), model.getExample());
}
};
mResultList.setAdapter(firebaseRecyclerAdapter);
}

最佳答案

有两种方法可以解决此问题。第一个方法是使用方法 toLowerCase() 将项目名称从一开始就以小写形式存储在数据库中。因此,如果您想按小写字母搜索名称,效果会很好。然后,如果您想在 Activity 中显示名称并且希望将第一个字母大写,则只需使用以下代码行:

String firstLetterCapital = lowerCaseItemName.substring(0, 1).toUpperCase() + lowerCaseItemName.substring(1);

因此,如果您有一个名为 item 的项目,使用上述代码,结果将是:Item

第二种方法是将项目的小写名称存储为项目的属性,如下所示:

Firebase-root
|
--- items
|
--- ItemIdOne
|
--- itemName: Item
|
--- itemToLowerCase: item

然后要创建搜索,您可以使用如下所示的查询:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference itemsRef = rootRef.child("items");
Query query = itemsRef.orderByChild("itemToLowerCase").startAt(itemName.toLowerCase());

关于java - 如何也按小写搜索 Firebase 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49995926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com