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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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云函数隐藏JavaScript代码吗?_Node.js_Firebase_Mqtt_Google Cloud Functions - Fatal编程技术网

Node.js 我可以用Firebase云函数隐藏JavaScript代码吗?

Node.js 我可以用Firebase云函数隐藏JavaScript代码吗?,node.js,firebase,mqtt,google-cloud-functions,Node.js,Firebase,Mqtt,Google Cloud Functions,我有一个JavaScript网页,它将MQTT数据发送到运行MOSQUITO的服务器。我想对用户隐藏MQTT服务器名称、用户名和密码。我知道使用普通JavaScript是不可能的,因为源代码在控制台中是可见的 是否可以使用Firebase云功能进行此操作?如果是,如何实现?这实际上是本手册中提到的关键功能之一: 保持逻辑的私密性和安全性 在许多情况下,开发人员更喜欢控制服务器上的应用程序逻辑,以避免在客户端进行篡改。此外,有时不希望允许对代码进行反向工程。云功能与客户端完全隔离,因此您可以确保它

我有一个JavaScript网页,它将MQTT数据发送到运行MOSQUITO的服务器。我想对用户隐藏MQTT服务器名称、用户名和密码。我知道使用普通JavaScript是不可能的,因为源代码在控制台中是可见的


是否可以使用Firebase云功能进行此操作?如果是,如何实现?

这实际上是本手册中提到的关键功能之一:

保持逻辑的私密性和安全性

在许多情况下,开发人员更喜欢控制服务器上的应用程序逻辑,以避免在客户端进行篡改。此外,有时不希望允许对代码进行反向工程。云功能与客户端完全隔离,因此您可以确保它是私有的,并且总是完全按照您的要求执行

Firebase的产品中有不少样品

例如,向用户发送电子邮件确认的示例需要发送电子邮件的gmail凭据。您永远不会希望将这些凭据嵌入到应用程序代码中,因为恶意用户可能会发现并滥用这些凭据。因此,这段代码非常适合在云函数中运行。此示例中的示例:

您可以硬编码电子邮件地址和密码,因为只有项目中的开发人员才能看到它。但在本例中,该示例做得更好,并将凭证保存在服务器端配置中,该配置使用
functions.config()
读取。要了解如何设置这些,请阅读:

设置
gmail.email
gmail.password
谷歌云环境变量,以匹配用于发送电子邮件的gmail帐户的电子邮件和密码(如果您的帐户启用了两步验证,则设置应用程序密码)。对于此用途:

firebase functions:config:set gmail.email="myusername@gmail.com" gmail.password="secretpassword"

我认为即使是API密钥也可以通过firebase函数安全地存储。我已经把我的想法写进了一本关于保存firebase配置变量并访问它们的详细方法的书中。看一看

firebase functions:config:set gmail.email="myusername@gmail.com" gmail.password="secretpassword"