【发布时间】:2019-10-15 22:39:42
【问题描述】:
我需要一个 firebase 查询来根据数组的值过滤列表。
如果 GID(Array) 的任何索引包含给定的键。例如,我的键是 YsGMyfLSGRNHxDWQmhpuPRqtxlq1,一个节点的 GID 在第 0 个索引上,其他在第一个索引上。所以需要返回这两个列表。
目前,我只能使用代码获取第 0 个索引处的那个
//userID = YsGMyfLSGRNHxDWQmhpuPRqtxlq1
firebaseDatabase.child("Groups").queryOrdered(byChild: "GID/0").queryEqual(toValue:userID)
当我尝试合并查询时出现错误。
【问题讨论】:
-
Firebase 实时数据库有一个限制,您只能订购 1 个孩子。但是请分享您的数据库结构,我会尽力为您提供解决方案。
-
请试试这个 firebaseDatabase.child("Groups").queryOrdered(byChild: "GID").queryEqual(toValue:userID)
-
您当前的数据库结构可以轻松找到组的 GID(用户?)。然而,找到 GID 的组并不容易。要允许后者,您需要在数据结构中添加一个反向索引:
/GIDS/$gidid/groups/$groupId。也可以在这里查看我的答案:stackoverflow.com/questions/27207059/… 和这里:stackoverflow.com/questions/40656589/…
标签: android ios swift firebase firebase-realtime-database