查询在Firebase android中搜索文本

时间:2017-11-19 11:39:47

标签: android firebase

如何在firebase中像firebase中的“%a%”一样在firebase中编写查询?

我尝试了以下解决方案,但没有工作 startAt(文本).endAt(文本)

请提出任何建议?

1 个答案:

答案 0 :(得分:0)

一种实现方法是遍历密钥的子代。

private void SearchString(DatabaseReference mDatabase, final String criteria) {
    mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            
            //loop the children of the the current key
            for (DataSnapshot shot : snapshot.getChildren()){
                 if (shot.getValue().toString().equals(criteria)){
                     //found the string 
                     // do something
                     //
                 }
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });
}

鉴于所有子项都是字符串,则可以使用数据库参考和条件调用上述过程。但是,在大型数据库上可能需要一些时间。

一种提高速度的方法是实施二进制搜索,只要Firebase对您的子数据进行排序。