我想知道哪个用户在我的工作代码中推送了firebase队列上的任务。我可以在任务中推送userId,但这不安全,任何其他用户都可以推送其他用户的userId。有没有办法可以访问将任务推入队列的用户。
答案 0 :(得分: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",
}
}
}
}
}
我建议您阅读documentation on Firebase security rules并特别注意section on user based security。