1

我想知道哪个用户在我的工作代码中将任务推送到了 firebase 队列中。我可以在任务中推送 userId,但这并不安全,任何其他用户都可以推送其他用户的 userId。有没有办法可以访问将任务推送到队列中的用户。

4

1 回答 1

1

保护您的数据库相当容易,因此用户只能推送包含他们自己的 UID 的任务。

例如,假设您有以下 JSON 结构:

tasks
  task1
    creator: "uidOfPankaj"
    description: "Whatever other fields your task needs"
  task2
    creator: "uidOfPuf"
    description: "Fields for Frank's task"

您可以通过以下规则确保用户只能在creator属性下使用自己的 UID 推送任务:

{
  "rules": {
    "tasks": {
      "$taskId": {
        ".write": "newData.hasChildren(['creator', 'description'])",
        "creator": {
          ".write": "newData.val() == auth.uid",
        }
      }
    }
  }
}

我建议您阅读有关 Firebase 安全规则的文档,并特别注意有关基于用户的安全部分

于 2017-01-13T15:30:37.503 回答