实时firebase数据库从请求读取数据



我有3个集合

1 -病例

3-业主(内箱收集)

2 -邀请在正常情况下,当用户添加邀请时,我检查托盘该操作的用户是否为所有者,从newDate中取出caseId,从auth.uid中取出uid,并将这些数据与cases collection中存在的数据进行比较

但是它总是拒绝给我许可。

// Any one have cases
"cases":{ 
".write" : "auth.uid != null"
// Store id of owner only when case created first time
"owner"  : {
".write": "!data.exists()"
}
}
//only Owner of case can add invitations
"invitations":{
".write" :"root.child('cases').child(newData.child('caseId').val()).child('owner').child(auth.uid).exists()",
},  

我发送给invitations集合的数据是

Invitation(
endAt: DateTime.now().add(Duration(days: 1)),
id: invitationId,
caseId: caseId,
);

编辑当我尝试用caseId值代替newData.child('caseId').val()作为静态字符串值时,它正在工作!!

对于谁面临这个问题,我是错误的,因为我使用newDate在父母不是孩子,我将写,所以我把我的规则下"$invitationId"和它的工作。

//only Owner of case can add invitations
"invitations":{
"$invitationId":{
".write" :"root.child('cases').child(newData.child('caseId').val()).child('owner').child(auth.uid).exists()",
}
},