javascript - 发布在 github 上的 Firebase 配置对象
问题描述
过去几周我在做一个个人项目,并使用 github 作为 VCS,但现在我想将该项目公开,所以我必须问下一件事。
我忘记为 firebase 配置对象创建一个单独的文件并将其添加到 gitignore,因此如果您搜索它,它在项目中可见
var firebaseConfig = {
apiKey: "API_KEY",
authDomain: "PROJECT_ID.firebaseapp.com",
databaseURL: "https://PROJECT_ID.firebaseio.com",
projectId: "PROJECT_ID",
storageBucket: "PROJECT_ID.appspot.com",
messagingSenderId: "SENDER_ID",
appId: "APP_ID",
measurementId: "G-MEASUREMENT_ID",
};
该对象包含这些数据,我的问题是,我可以做任何事情来保护 firebase 帐户,以便在我发布项目时不会出现人们试图弄乱我的后端的问题吗?
或者还有其他选择吗?
解决方案
除了重置您的密钥之外,您还可以使用git filter-repo
(参见 INSTALL)来重写所有提交,使用blob 回调更改该版本文件的内容。
您将替换apiKey: "..."
为apiKey: "XXX"
.
git filter-repo --blob-callback '
blob.data = blob.data.replace(b"yourKey", b"AN_ENVIRONMENT_VARIABLE")
'
这样,您的代码历史记录将基于环境变量名称,而不是旧的键值。
推荐阅读
- ios - 有没有办法以编程方式在选项卡栏上创建视图控制器?
- c# - 使用 Setter 反序列化计算属性
- django - 如何更改 bootstrap4 django-tables2 的标题
- c# - 通过 API 3.0 将订阅者添加到 Mailchimp
- c# - WPF 中的实时图表
- ruby - 将 Ruby 哈希 (key,value) 转换为单独的键
- wordpress - 缺少 WordPress VisualComposer 资产
- jhipster - Jhipster 5.7 微服务无法在 windows 上启动,错误 CreateProcess error=206, The filename or extension is too long
- vb.net - 如何在 ComboBox 项中添加数值并在 TextBox 中显示计算值?
- matlab - 块“xyz/If Action Normal/In1”的离散采样时间与控制其执行的 If 块“abc”的采样时间 0 不匹配