【问题标题】:Query for searching text in Firebase android在 Firebase android 中搜索文本的查询
【发布时间】:2017-11-19 11:39:47
【问题描述】:

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

我尝试了以下解决方案,但没有奏效
startAt(text).endAt(text)

有什么建议吗?

【问题讨论】:

  • 您说的是 Firebase 实时数据库吗?显示您拥有的不起作用的代码?
  • 显示一些代码和数据库以了解您在查询什么
  • 是 @Erik mRef = FirebaseUtil.getPostsRef().orderByChild("title").startAt(text).endAt(text).limitToFirst(5);

标签: android firebase


【解决方案1】:

这样做的一种方法是遍历一个键的子项。

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 对您的子数据进行排序,一种加快速度的方法是实现二进制搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多