使用密钥验证Firebase输入

时间:2018-06-14 19:03:55

标签: javascript firebase firebase-realtime-database firebase-security-rules

我正在与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

有没有办法发送具有某种值的对象进行验证?

1 个答案:

答案 0 :(得分:0)

我不确定是否有办法在不存储代码的情况下执行此操作。您可以随时存储代码而不是“true”,因为true不会以任何其他方式帮助您。如果要检查另一个数据库中的值,则只需检查“成员”下是否存在用户ID。

{
  courses: {
    "A1": {
      "code": "codeToMatch",
      "date": "2018-07-01T08:00:00.000Z",
      "members": {
        "abcd1234": codeToMatch,
        "efgh5678": codeToMatch
      },
    }, ...
  }
}

另一种选择是使用Cloud Function检查代码并进行适当的更新。