此问题在此处已有答案:
Is it safe to expose Firebase apiKey to the public?(9个回答)
19天前关闭。
所以情况是这样的:我正在设置一个小型的nextjs应用程序来与firebase数据库(+存储)进行交互。
问题是,firebase应用程序示例现在位于服务器组件中,因为我认为向客户端发送“凭据”(API密钥和其他东西)并不好。
这并不是很好,因为应用示例的生命周期似乎是随机的,或者至少,我不能正确地控制它(我有一个单例存在)。
最后,我知道我的设置很糟糕,但我最终还是把firebase示例移到了客户端组件上。但这意味着API密钥、应用程序ID和其他东西都要发送到客户端,我想知道什么是正确的方法?
(most我找到的在线资源中的一个通过前缀为NEXT_PUBLIC
的“env变量”将它们发送给客户端,我也最终这样做了)
1条答案
按热度按时间kq0g1dla1#
您是否正在使用Firebase Web SDK?如果是,您不必担心用于初始化应用程序的密钥,因为Firebase仅使用这些密钥来识别您的应用程序,而不是控制对数据库或云存储数据的访问。https://firebase.google.com/support/guides/security-checklist#api-keys-not-secret
现在,如果您正在使用Firebase管理SDK,您可以创建内部API路由来从Firestore或云数据库获取所需的任何数据,然后您可以在客户端组件中获取这些API路由,而无需FE中的公钥。