【发布时间】:2018-07-04 01:33:41
【问题描述】:
我需要使用 Firebase Admin SDK 将文件添加到存储中。这似乎有问题,我不知道该怎么做。这是我的初始化代码:
FileInputStream serviceAccount = new FileInputStream("path/to/my/file.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://my-app.firebaseio.com")
.setStorageBucket("gs://my-app.appspot.com")
.build();
FirebaseApp.initializeApp(options);
然后,我从这段代码中得到我的桶:
Bucket bucket = StorageClient.getInstance().bucket();
但每次,我都会收到此错误:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient$Builder.setBatchPath(Ljava/lang/String;)Lcom/google/api/client/googleapis/services/AbstractGoogleClient$Builder;
at com.google.api.services.storage.Storage$Builder.setBatchPath(Storage.java:9263)
at com.google.api.services.storage.Storage$Builder.<init>(Storage.java:9242)
at com.google.cloud.storage.spi.v1.HttpStorageRpc.<init>(HttpStorageRpc.java:94)
at com.google.cloud.storage.StorageOptions$DefaultStorageRpcFactory.create(StorageOptions.java:54)
at com.google.cloud.storage.StorageOptions$DefaultStorageRpcFactory.create(StorageOptions.java:48)
at com.google.cloud.ServiceOptions.getRpc(ServiceOptions.java:472)
at com.google.cloud.storage.StorageOptions.getStorageRpcV1(StorageOptions.java:122)
at com.google.cloud.storage.StorageImpl.<init>(StorageImpl.java:99)
at com.google.cloud.storage.StorageOptions$DefaultStorageFactory.create(StorageOptions.java:44)
at com.google.cloud.storage.StorageOptions$DefaultStorageFactory.create(StorageOptions.java:38)
at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:459)
at com.google.firebase.cloud.StorageClient.getInstance(StorageClient.java:62)
at management.AdminService.<init>(AdminService.java:29)
at Main.main(Main.java:17)
怎么了? :D 带有存储的 Google Admin SDK 教程似乎很神秘。
【问题讨论】:
-
此错误是因为您的类路径中有较新版本的 google-cloud-storage 或较旧版本的 google-api-client。假设您使用的是最新的 Admin SDK,请尝试将您的依赖项(和传递依赖项)同步到 github.com/firebase/firebase-admin-java/blob/v5.8.0/pom.xml 中声明的内容
-
好的,非常感谢 Hiranya,您的评论非常有用,现在可以使用了!!
标签: java firebase firebase-storage firebase-admin