gpt4 book ai didi

android - 如何在 Firebase 数据库中搜索字符串中的任意位置 - Android

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:02:55 24 4
gpt4 key购买 nike

我已经在我的 android 应用程序中实现了 firebase 实时数据库,一切都很好。我正在尝试添加一个搜索功能,并且我能够仅使用起始单词匹配来搜索数据库。下面是我的数据库快照:

enter image description here

我正在查询电影名称。现在我可以搜索查询字符串是否为 Pets/Pe/pet。但是当我搜索 Animals 时,我得到的结果为零。所以,基本上我正在寻找的是在字符串中的任何位置使用查询文本搜索数据库。即,我应该能够搜索 Animals/and/pets 并且应该得到包含搜索查询的结果。

到目前为止,下面是我的代码。

mDatabaseReference.child("recent").getRef().orderByChild("movieName").startAt(query)
.endAt(query + "\uf8ff")

最佳答案

要在字符串中搜索字符串,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference animalsRef = rootRef.child("Animals");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Boolean found;
String search = "Animals";
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String movieName = ds.child("movieName").getValue(String.class);
found = movieName.contains(search);
Log.d("TAG", movieName + " / " + found);
}
}

@Override
public void onCancelled(DatabaseError databaseError) {}
};
animalsRef.addListenerForSingleValueEvent(eventListener);

如您所见,我们在数据库中查询所有电影名称,然后在 movieName 中搜索所需的词。

关于android - 如何在 Firebase 数据库中搜索字符串中的任意位置 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46261573/

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