我正在 Android Studio 中使用 Google App Engine 开发应用程序后端。我想使用 Firebase,因此它的 SDK 初始化的一部分是读取服务帐户凭据 JSON 文件。我将该文件添加到我的“src”目录中,并尝试像在 Firebase 文档中一样读取它:
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(new FileInputStream("/src/serviceAccountCredentials.json"))
.setDatabaseUrl("https://databaseName.firebaseio.com/")
.build();
但它总是抛出异常,拒绝访问文件:
java.security.AccessControlException:
access denied ("java.io.FilePermission" "/src/serviceAccountCredentials.json" "read")
如何更改此文件的读取权限? 谢谢:)
最佳答案
您位于源目录中,因此编译后它应该位于类补丁的根目录中。但请确保它在那里,它实际上取决于构建工具,其中一些可以忽略 src 目录中的非源文件,因为此类文件应该位于 resources 目录中。如果是您的情况,请将文件移动到资源目录。
然后,要读取此文件,您必须将其用作资源:
InputStream cred = this.getClass()
.getResourceAsStream("/serviceAccountCredentials.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(cred)
.setDatabaseUrl("https://databaseName.firebaseio.com/")
.build();
关于java - 我的 Google App Engine 项目中的文件访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37746607/