Firebase 应该在客户端 运行 吗?
Is Firebase supposed to run on the client?
我对使用 Firebase (https://firebase.google.com/) 感兴趣,我查看了他们的文档,他们的 JavaScript 示例似乎 运行 在客户端上,我真的愚蠢还是一个坏主意?
喜欢数据库功能例如:
function writeUserData(userId, name, email) {
firebase.database().ref('users/' + userId).set({
username: name,
email: email
});
}
如何阻止某人在浏览器中打开控制台并将他们想要的任何内容放入数据库,也许数千次?
此外,我启动了一个 node/express 服务器并设法让数据库功能在服务器上正常工作,但不幸的是我不能使用他们的身份验证功能,可能是因为它需要将令牌发送到客户?
您可以编写 security rules for your database,验证保存的数据并确保用户只能 read/write 他们获得授权的数据。
例如,您可以确保用户只能在 /users
下修改自己的节点:
{
"rules": {
"users": {
"$uid": {
".write": "auth.uid == $uid"
}
}
}
}
我强烈推荐阅读 documentation on the security rules for the Firebase Database。
为了回答您的问题,您的应用程序代码都应 运行 在客户端
我对使用 Firebase (https://firebase.google.com/) 感兴趣,我查看了他们的文档,他们的 JavaScript 示例似乎 运行 在客户端上,我真的愚蠢还是一个坏主意?
喜欢数据库功能例如:
function writeUserData(userId, name, email) {
firebase.database().ref('users/' + userId).set({
username: name,
email: email
});
}
如何阻止某人在浏览器中打开控制台并将他们想要的任何内容放入数据库,也许数千次?
此外,我启动了一个 node/express 服务器并设法让数据库功能在服务器上正常工作,但不幸的是我不能使用他们的身份验证功能,可能是因为它需要将令牌发送到客户?
您可以编写 security rules for your database,验证保存的数据并确保用户只能 read/write 他们获得授权的数据。
例如,您可以确保用户只能在 /users
下修改自己的节点:
{
"rules": {
"users": {
"$uid": {
".write": "auth.uid == $uid"
}
}
}
}
我强烈推荐阅读 documentation on the security rules for the Firebase Database。
为了回答您的问题,您的应用程序代码都应 运行 在客户端