如何将Cloud Firestore规则应用于服务帐户?像从java管理员API一样,形成与数据库的连接的唯一方法是使用绕过所有规则的服务帐户。我错过了什么毫无意义?或者有没有其他方法可以在不使用像这样的服务帐户的情况下连接到数据库
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(ServiceAccount.json))
.setDatabaseUrl("DataBaseURL")
.build();
FirebaseApp.initializeApp(options);
我想把它添加到一个开源项目中,这样每个人都可以完全访问数据库是不理想的。所以我希望这些规则适用,但我知道如何适用?如果您只能使用服务帐户。
如果无法将规则应用于服务帐户,那么如何在没有服务帐户的情况下建立连接?如果这也是不可能的,那么的规则有什么意义
编辑:没有办法将规则应用于服务帐户,这在java-Admin SDK中也是一个遗憾。如果没有服务帐户,你就不能直接与数据库建立连接,所以唯一的方法是制作某种Rest API,在那里你发送请求,它将执行它。
安全规则适用于直接从客户端SDK访问Firestore的任何权限,例如Android、iOS和客户端JavaScript的SDK。
无法将安全规则应用于使用服务帐户访问Firestore的客户端,如Java、Go和Node.js的Admin SDK。这些客户端在假定为特权环境的环境中使用管理权限运行,例如您的开发机器、您控制的服务器或云功能。根据定义,这些连接绕过了安全规则,并且没有办法更改这种行为。