我正在努力研究FireBase实时数据库规则结构。我需要验证用户注册码输入以便写入数据库。我正在验证前端的代码,我正在尝试通过FireBase规则来实现相同的功能。
没有
存储提交的代码。
例如,要发送的对象是:
{
"courseId": "A1",
"code": "codeToMatch"
}
预期的数据库结构是:
{
courses: {
"A1": {
"code": "codeToMatch",
"date": "2018-07-01T08:00:00.000Z",
"members": {
"abcd1234": true,
"efgh5678": true
},
}, ...
}
}
到目前为止,我能做的最好的事情是:
{
courses: {
"A1": {
"code": "codeToMatch",
"date": "2018-07-01T08:00:00.000Z",
"members": {
"abcd1234": {
"code": "codeToMatch",
"true": true
},
...
},
}, ...
}
}
我想推到
courses/{courseId}/members/{uid}
,带有
members
存储所有注册用户。
规则
{
"rules": {
".write": "auth != null", // Allow any authorized user to write
"courses": {
".read": "auth != null",
"$courseId": {
"members": {
"$uid": {
".validate": "root.child('courses').child($courseId).child('code').val() == newData.child('code').val()" // only write if it's valid
}
}
}
}
}
}
有没有一种方法只发送一个具有某种值的对象来进行验证?