我对使用Firebase(https://firebase.google.com/)感兴趣,我看过他们的文档,他们的JavaScript示例似乎在客户端上运行,我真的很蠢或者是不是很糟糕想法?
与数据库功能类似,例如:
function writeUserData(userId, name, email) {
firebase.database().ref('users/' + userId).set({
username: name,
email: email
});
}
是什么阻止某人在浏览器中打开控制台并将他们想要的任何内容放入数据库中,可能需要数千次?
此外,我启动了一个节点/快速服务器并设法使服务器上的数据库功能正常工作,但不幸的是我无法获得其身份验证功能,可能是因为它需要将令牌发送到客户端?
答案 0 :(得分:2)
您可以编写security rules for your database来验证保存的数据,并确保用户只能读取/写入他们授权的数据。
例如,您可以确保用户只能在/users
下修改自己的节点:
{
"rules": {
"users": {
"$uid": {
".write": "auth.uid == $uid"
}
}
}
}
我强烈建议您阅读documentation on the security rules for the Firebase Database。
答案 1 :(得分:0)
要回答您的问题,您的应用程序代码都应该在客户端上运行