如何从孩子(firebase)查询所有孩子的值[重复]
Posted
技术标签:
【中文标题】如何从孩子(firebase)查询所有孩子的值[重复]【英文标题】:How to query all childs values from child( firebase) [duplicate] 【发布时间】:2021-04-22 20:57:22 【问题描述】:我想执行以下操作:
firebaseDatabase = FirebaseDatabase.getInstance().getReference().child("resources");
Query firebaseSearchQuery =firebaseDatabase.child("tags").startAt(text).endAt(text+"\uf8ff");
在每个 tags
的子值中查找与 text
的匹配项。
对我来说:"whopper", "burger", "king", "Whopper"
如何查询和查找匹配项?
【问题讨论】:
您当前的数据结构可以轻松找到资源的标签。但是,它并不容易找到标签的资源。为此,您需要创建一个额外的反向数据结构,将标签映射回资源。有关这方面的更多信息,请参阅***.com/questions/40656589/… 【参考方案1】:似乎您想查找所有值包含特定字符串的子项。
equalTo()根据选择的排序方法返回等于指定键或值的项目。
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference resources01Referense = rootReference.child("01").child("tags");
Query query = resources01Referense.orderByValue().equalTo(text+"\uf8ff");
然后查询你的数据
Link to do documentation
【讨论】:
【参考方案2】:您的“标签”节点实际上是一个 Map,其中包含四个键值对。不幸的是,Firebase 没有提供使用“startAt()”和“endAt()”搜索这种结构的方法,它仅适用于 String 类型的属性。您需要的是某种搜索功能。不幸的是,Firebase 不支持本地索引或在数据库属性中搜索文本字段。但是,要解决此问题,我建议您查看以下帖子中的答案:
Firebase Realtime Database Search by word in between the query?【讨论】:
以上是关于如何从孩子(firebase)查询所有孩子的值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Firebase android kotlin 获取所有具有特定价值的孩子?