我设置了以下数据库:
NodesArray : array [1..100] of TNode;
我正在尝试仅在当前用户uid位于该特定Groupname的Members区域时才查询以获取Groupname和cost。问题是我不知道组名,因为它们都将由用户选择,因此它不是静态的。是否有任何类型的getParent函数与firebase数据库?
答案 0 :(得分:1)
如果 Members 节点已有FIRDataSnapshot
个对象,则可以使用ref
(和FIRDatabaseReference.parent
)属性向上移动层次结构。例如:
let members: FIRDataSnapshot = ...
let groupName: FIRDatabaseReference = members.ref.parent!
// Inspect the groupName ref...
但是,正如我之前所说,你需要一个FIRDataSnapshot
方便的工作: - )
答案 1 :(得分:0)
你必须遵守安全规则: -
安全规则
{
"rules": {
"Groups" : {
"$Group_name" :{
// Will only allow the user's who are members to this group access
// this group node to read; you can modify your write rules similarly...
".read" : "root.child('Groups').child($Group_name).child('MemberID').child(auth.uid).exists()",
".write" : "auth != null"
}
},
"Users" : {
"$uid" : {
".read" : "auth.uid == $uid",
".write" : "auth.uid == $uid"
}
}
}
}
安全规则充当内部过滤器;因此,您不必担心父节点将不允许用户进入该特定 $ Group_name 节点,除非该节点是该组的成员。