如何在 Java 中使用 Firebase Admin 将文件上传到 Firebase 存储?
How to Upload file to Firebase Storage using Firebase Admin in Java?
我正在尝试使用 Eclipse Java 为我的 Android Studio 应用程序创建一个 Firebase 管理面板,我希望能够将内容(pdf、其他文件等)上传到 Firebase 存储以便用户可以通过我的应用程序下载此内容。有什么办法可以做到这一点?
我已经尝试使用下面的代码来查看这是否适合我的需要:
Bucket bucket = StorageClient.getInstance().bucket();
Storage storage = StorageOptions.newBuilder()
.setCredentials(credentials)
.build()
.getService();
BlobId blobId = BlobId.of(bucket.getName(), "folder");
System.out.println("Blob Id:"+blobId);
BlobInfo blobInfo =
BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
System.out.println("Blob Info:"+blobInfo);
Blob blob = storage.create(blobInfo, "Hello, Cloud
Storage!".getBytes(UTF_8));
但是.....我得到了这个 NullPointerException
java.lang.NullPointerException
at java.base/java.lang.String.getBytes(String.java:956)at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
我似乎无法获得太多关于此的信息...任何帮助将不胜感激!
我没有确定所有需要的代码,但您似乎有变量 UTF_8
但未分配。我想这应该是字符串值 "UTF-8"。
如果你需要一些参考,我找到了类似 that
的内容
希望对您有所帮助!
我正在尝试使用 Eclipse Java 为我的 Android Studio 应用程序创建一个 Firebase 管理面板,我希望能够将内容(pdf、其他文件等)上传到 Firebase 存储以便用户可以通过我的应用程序下载此内容。有什么办法可以做到这一点? 我已经尝试使用下面的代码来查看这是否适合我的需要:
Bucket bucket = StorageClient.getInstance().bucket();
Storage storage = StorageOptions.newBuilder()
.setCredentials(credentials)
.build()
.getService();
BlobId blobId = BlobId.of(bucket.getName(), "folder");
System.out.println("Blob Id:"+blobId);
BlobInfo blobInfo =
BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
System.out.println("Blob Info:"+blobInfo);
Blob blob = storage.create(blobInfo, "Hello, Cloud
Storage!".getBytes(UTF_8));
但是.....我得到了这个 NullPointerException
java.lang.NullPointerException
at java.base/java.lang.String.getBytes(String.java:956)at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
我似乎无法获得太多关于此的信息...任何帮助将不胜感激!
我没有确定所有需要的代码,但您似乎有变量 UTF_8
但未分配。我想这应该是字符串值 "UTF-8"。
如果你需要一些参考,我找到了类似 that
的内容希望对您有所帮助!