Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何从用户操作中保护Firebase帐户等?_Node.js_Firebase_Firebase Authentication_Firebase Security_Google Cloud Functions - Fatal编程技术网

Node.js 如何从用户操作中保护Firebase帐户等?

Node.js 如何从用户操作中保护Firebase帐户等?,node.js,firebase,firebase-authentication,firebase-security,google-cloud-functions,Node.js,Firebase,Firebase Authentication,Firebase Security,Google Cloud Functions,我正在开发一个爱好项目,使用Firebase和一些运行在Google App Engine上的Node.JS作为后端。我是这方面的新手,一个月前刚刚听说Firebase 我的问题涉及如何从用户操作中保护各种“东西”,即使Firebase在客户端作为JS运行 我知道,数据库和存储可以使用逻辑规则进行安全保护——这是现成的 我的问题与用户可以使用firebase.auth()和类似工具执行的操作有关,例如: firebase.auth().createUserWithEmailAndPasswor

我正在开发一个爱好项目,使用Firebase和一些运行在Google App Engine上的Node.JS作为后端。我是这方面的新手,一个月前刚刚听说Firebase

我的问题涉及如何从用户操作中保护各种“东西”,即使Firebase在客户端作为JS运行

我知道,数据库和存储可以使用逻辑规则进行安全保护——这是现成的

我的问题与用户可以使用firebase.auth()和类似工具执行的操作有关,例如:

  • firebase.auth().createUserWithEmailAndPassword()
  • firebase.auth().currentUser.delete()
  • firebase.auth().currentUser.link()
正如我从下面链接的问题中了解到的那样,没有解决方案-用户将始终能够调用这些功能,并且这被认为是低风险的,因为他们无法接触其他用户帐户

我担心无法阻止用户执行这些操作,因为我无法对数据库执行相关更改。对于一些基本用例,我假设设置一个夜间批处理作业来清理是很容易的,但我担心将来会出现更复杂的问题

我目前用于执行原子操作的解决方案,例如删除用户帐户和数据库中的用户数据,是向我的后端Node.JS服务器发送请求。这很好,但据我所知,用户可以自己传递此消息和请求,例如currentUser.delete()。另一种情况是,用户取消与google帐户的链接。我希望用户通过注销,但使用前提,用户可以取消与后续操作的链接


问题:我误解了什么吗?这是否容易被阻止,或者是所有可用的行为都被认为是无害的,由我来执行聪明的清理等等?如果无法阻止,您还有比夜间批处理作业更聪明的建议吗?

例如,使用firebase的云函数,您可以在用户删除时触发函数。这样,每次删除用户时,您都可以运行代码进行清理。无论如何调用用户删除

exports.removeUserFromDatabase=functions.auth.user().onDelete(函数(事件){ //获取已删除用户的uid。 var uid=event.data.uid; //从实时数据库的/users节点删除该用户。 返回admin.database().ref(“/users/”+uid).remove(); }); “onCreate”也是如此。查看他们的文档