Firebase(Firestore)Web应用SDK,React JS给出错误Missing or insufficient permission

6uxekuva  于 2023-08-07  发布在  React
关注(0)|答案(1)|浏览(108)

当从Firestore获取数据时,我没有实现任何用户特定的身份验证,因为用户身份验证是使用SSO完成的。我们的ReactJs应用程序使用Firebase Web SDK配置从Firestore获取数据,但早期的Firebase SDK用于忽略Firestore安全规则,但在Firebase V9 SDK之后,它也会考虑Firestore规则。
我的问题如下。
1.通过设置allow read, write if true;,这个规则是否会使我们的数据库公开,并且任何人即使没有我的Firebase Web SDK Config凭据也能够访问我的数据库?
1.如果上述问题的答案是肯定的,那么我如何在不使用Firebase身份验证(如电话,eamil/密码,匿名等)的情况下保护Firestore数据库?我的意思是在ReactJs应用程序中不做任何更改?
请帮助我了解Firestore安全规则。

svgewumm

svgewumm1#

通过设置allow read, write if true;,这个规则是否会使我们的数据库公开,并且任何人即使没有我的Firebase Web SDK Config凭据也能够访问我的数据库?
您的数据库是公共的,有这样的规则**,但需要有您的Firebase项目配置数据(项目apiKey)**才能读取数据库内容。然而请注意,通过反向工程前端代码来获取此apiKey并不困难。
所以答案是肯定的。
如果上述问题的答案是肯定的,那么我如何在不使用Firebase身份验证(如电话,eamil/密码,匿名等)的情况下保护Firestore数据库?我的意思是在ReactJs应用程序中不做任何更改?
除了使用身份验证和安全规则来保护您的数据库不被Firebase V9 SDK读取之外,没有其他替代方法。
您可以通过使用Cloud Functions从前端与Firestore进行交互来模拟3层架构方法(如article所述),并在Cloud Functions中实现一些定制的安全逻辑(但使用Cloud Functions从/向Firestore进行阅读/写入有很多缺点,您需要更改您的ReactJS应用程序)。

相关问题