创建新项目时,Firebase 会自动生成浏览器 API 密钥,该密钥在 GCP API 凭据 中。这是在 Firebase Web 客户端 SDK 中设置的相同 API 密钥,并且公开可用。
默认情况下,该密钥没有任何限制,因此容易被用于窃取每个启用了该项目的 API 的配额。令人惊讶的是,我在 Firebase 文档中没有找到有关保护此密钥的信息。
因此,我采取了两个额外的步骤来保护该密钥:
- 将 HTTP referrer 限制添加到仅允许来自我的域的请求。
- 将身份工具包 API 添加到允许的 API 列表中。通过实验我发现这已足以使 Firebase Auth 和 Firestore 正常工作。
- 添加令牌服务 API。这对于刷新令牌的工作和保持身份验证很重要。
我的问题主要与第2-3点相关。要使 Firebase 的各个组件在 Web 上正常工作需要启用哪些 API?