阻止用户修改Firebase中的数据,但允许应用程序更新此数据
我用盖茨比JS(React)+Firebase创建了一个应用程序 用户的分数与其数据一起保存在Firebase实时数据库中阻止用户修改Firebase中的数据,但允许应用程序更新此数据,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我用盖茨比JS(React)+Firebase创建了一个应用程序 用户的分数与其数据一起保存在Firebase实时数据库中 { users: { $uid: { score: 10, name: "Antho", ... } } } 我不希望用户能够自己更改他们的分数,因此我按如下方式拆分我的数据库: { users: { $uid: { name: "uciska", ... } },
{
users: {
$uid: {
score: 10,
name: "Antho",
...
}
}
}
我不希望用户能够自己更改他们的分数,因此我按如下方式拆分我的数据库:
{
users: {
$uid: {
name: "uciska",
...
}
},
scores: {
$uid: {
score: 10
}
}
}
但我不知道该制定什么规则
我想我需要一些后端代码。如果是这样的话,我希望在不必设置Node.js服务器的情况下使用Amazon Lambda函数
可能吗?从哪里开始
Cloud Firestore能否更简单地做到这一点?如果您不希望您的用户能够编写分数,您可以简单地使用这些: 有了这个,每个用户都可以在
/users/$uid
下写下任何分数
接下来,您将希望在受信任的环境中使用来编写分数。受信任的环境是您可以控制访问的环境,例如服务器、开发机器或应用程序。在云函数中运行或以其他方式使用AdminSDK的代码具有管理权限,这意味着它绕过了安全规则。这样代码就可以读/写整个数据库,包括分数
{
"rules": {
"users": {
"$uid": {
".write": "auth.uid == $uid"
}
}
"scores": {
".write": false // this is not strictly needed, since the default is false
}
}
}