使用 firebase admin sdk 在 firebase 存储上上传文件 (java)
Upload file on firebase storage using the firebase admin sdk (java)
我正在尝试使用 java 的 firebase admin sdk 上传文件。我按照这个官方指南 https://firebase.google.com/docs/storage/admin/start 但是当我上传时出现以下错误:
线程“main”中的异常com.google.cloud.storage.StorageException:firebase-adminsdk-s5n1d@[PROJECT_ID]。iam.gserviceaccount.com 没有 serviceusage.services.use 访问 Google 云项目。
在 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 serviceAccount =
new FileInputStream("./XXX.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://[PROJECT_ID].firebaseio.com")
.setStorageBucket("[PROJECT_ID].appspot.com")
.build();
FirebaseApp.initializeApp(options);
InputStream file = new FileInputStream(filePath);
Blob blob = StorageClient.getInstance().bucket().create(fileName, file, Bucket.BlobWriteOption.userProject("[PROJECT_ID]"));
我发现问题:
您只需删除“Bucket.BlobWriteOption.userProject("[PROJECT_ID]")”参数。
现在可以正常使用了。
我正在尝试使用 java 的 firebase admin sdk 上传文件。我按照这个官方指南 https://firebase.google.com/docs/storage/admin/start 但是当我上传时出现以下错误:
线程“main”中的异常com.google.cloud.storage.StorageException:firebase-adminsdk-s5n1d@[PROJECT_ID]。iam.gserviceaccount.com 没有 serviceusage.services.use 访问 Google 云项目。 在 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 serviceAccount =
new FileInputStream("./XXX.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://[PROJECT_ID].firebaseio.com")
.setStorageBucket("[PROJECT_ID].appspot.com")
.build();
FirebaseApp.initializeApp(options);
InputStream file = new FileInputStream(filePath);
Blob blob = StorageClient.getInstance().bucket().create(fileName, file, Bucket.BlobWriteOption.userProject("[PROJECT_ID]"));
我发现问题:
您只需删除“Bucket.BlobWriteOption.userProject("[PROJECT_ID]")”参数。
现在可以正常使用了。