可以在firebase中包含搜索查询吗?

Ang*_*ena 8 android firebase firebase-realtime-database

我试过这个:

Query firebaseSearchQuery = 
myRef.orderByChild("from").startAt(searchText).endAt(searchText+"\uf8ff");
Run Code Online (Sandbox Code Playgroud)

但我想要这样的东西

Query firebaseSearchQuery = 
myRef.orderByChild("from").contains(searchText);
Run Code Online (Sandbox Code Playgroud)

有可能的 ?

Ale*_*amo 5

对于小型数据集,可以使用以下代码:

ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<String> list = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String from = ds.child("from").getValue(String.class);
            list.add(from);
        }

        for(String str : list) {
            if(str.contains(searchText)) {
                Log.d("TAG", "String found!");
            }
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
myRef.addListenerForSingleValueEvent(valueEventListener);
Run Code Online (Sandbox Code Playgroud)

不建议对大型数据集使用此解决方案,因为您需要下载整个节点才能进行搜索。在这种情况下,建议使用AlgoliaElasticsearch

如果你打算使用云公司的FireStore,我建议你看看我的回答从这个职位。有关更多信息,我也建议您观看此视频