使用firebase管理sdk(java)在firebase存储上上载文件

使用firebase管理sdk(java)在firebase存储上上载文件,java,firebase,google-cloud-storage,google-admin-sdk,Java,Firebase,Google Cloud Storage,Google Admin Sdk,我正在尝试使用firebase admin sdk for java上载文件。我遵循了这一官方指南,但当我上传时,我发现以下错误: 线程“main”com.google.cloud.storage.StorageException:firebase-adminsdk-s5n1d@[PROJECT_ID].iam.gserviceaccount.com没有对google cloud项目的serviceusage.services.use访问权限。 位于com.google.cloud.storag

我正在尝试使用firebase admin sdk for java上载文件。我遵循了这一官方指南,但当我上传时,我发现以下错误:

线程“main”com.google.cloud.storage.StorageException:firebase-adminsdk-s5n1d@[PROJECT_ID].iam.gserviceaccount.com没有对google cloud项目的serviceusage.services.use访问权限。 位于com.google.cloud.storage.spi.v1.HttpStorageRpc.translate(HttpStorageRpc.java:227) 位于com.google.cloud.storage.spi.v1.HttpStorageRpc.create(HttpStorageRpc.java:308) 位于com.google.cloud.storage.StorageImpl.create(StorageImpl.java:189) 位于com.google.cloud.storage.Bucket.create(Bucket.java:987)

这听起来好像我没有被授权,但根据指南,我应该得到一个桶的认证参考

代码如下:

FileInputStream服务帐户=
新文件输入流(“./XXX.json”);
FirebaseOptions=newfirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl(“https://[PROJECT_ID].firebaseio.com”)
.setStorage Bucket(“[PROJECT_ID].appspot.com”)
.build();
FirebaseApp.initializeApp(选项);
InputStream文件=新文件InputStream(文件路径);
Blob Blob=StorageClient.getInstance().bucket().create(文件名、文件名、bucket.BlobWriteOption.userProject(“[PROJECT\u ID]”);
我发现问题:

您只需删除“Bucket.BlobWriteOption.userProject(“[PROJECT\u ID]”)参数

现在它工作得很好