我正在与Firebase实时数据库规则结构搏斗。我需要验证用户注册码输入才能写入数据库。我现在正在验证前端中的代码,并且我试图通过Firebase规则找到一种方法来做同样的事情,而不用存储提交的代码。
例如,要发送的对象是:
string
预期的数据库结构是:
{
"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
有没有办法发送具有某种值的对象进行验证?
答案 0 :(得分:0)
我不确定是否有办法在不存储代码的情况下执行此操作。您可以随时存储代码而不是“true”,因为true不会以任何其他方式帮助您。如果要检查另一个数据库中的值,则只需检查“成员”下是否存在用户ID。
{
courses: {
"A1": {
"code": "codeToMatch",
"date": "2018-07-01T08:00:00.000Z",
"members": {
"abcd1234": codeToMatch,
"efgh5678": codeToMatch
},
}, ...
}
}
另一种选择是使用Cloud Function检查代码并进行适当的更新。