直到现在,我都将我的 Firebase 项目私钥保存在我的 React Native 应用程序的 app.json 中。像这样:
"web": {
"config": {
"firebase": {
"apiKey": "x",
"authDomain": "x.firebaseapp.com",
"databaseUrl": "https://x.firebaseio.com",
"projectId": "x",
"storageBucket": "x.appspot.com",
"messagingSenderId": "x",
...
}
}
},
但是看着 docs,我看到了以下内容:
<块引用>警告:不要将任何秘密(例如私有 API 密钥)存储在您的 反应应用!
环境变量被嵌入到构建中,这意味着任何人都可以 通过检查您应用的文件来查看它们。
那么,如果我不应该在前端存储机密,我该如何使用 Firebase 客户端 sdk?
答案 0 :(得分:2)
来自配置的 API 密钥不是秘密密钥,它是一个 public key,用作标识符和加密过程的一部分 - 因此不需要保护。
如果您要创建一个新的或使用现有的 service account 并具有对后端基础架构的潜在关键访问权限,则该帐户的私钥不应包含在您的前端代码中。
相反,您可以创建一个 firebase cloud function,您可以在其中使用机密而不将其暴露给外界。