在服务器中使用 Firebase 存储

Using Firebase Storage in server

我从 that Firebase Database for plain JVM can be accessed from the new server SDK那里学到了东西。所以现在我可以为我的 JavaFX 项目使用 Firebase 数据库 SDK,但我该如何使用存储 SDK?

遗憾的是,Firebase Storage doc doesn't mention anything about setting up storage in server. StorageReference 也无法从 com.google.firebase:firebase-server-sdk:[3.0.0,)com.google.firebase:firebase-server-sdk:3.0.1 获得。

Firebase 存储没有服务器 SDK,但由于它有 Google 云存储支持,您可以使用 GCS 服务器 SDK。这是从 Java.

访问它的 GCS docs

在 Gradle 文件中添加 compile 'com.google.cloud:google-cloud-storage:1.7.0'latest java library

如果存储 url 是 gs://some-bucket-name.appspot.com/directory/some_blob.zip 那么 STORAGE_BUCKET 必须是 some-bucket-name.appspot.com 路径应该是 directory/some_blob.zip

private long getSize(String path) {

    Storage storage = StorageOptions.newBuilder()
            .setProjectId(STORAGE_BUCKET)
            // Optionally Add credentials
            //.setCredentials(GoogleCredentials.fromStream(new FileInputStream(jsonFile)))
            .build()
            .getService();

    // Optional third parameter to limit fields returned, just getting size for my use case
    Blob blob = storage.get(STORAGE_BUCKET, path, Storage.BlobGetOption.fields(Storage.BlobField.SIZE));
    if (blob != null) {
        return blob.getSize();
    }
    return 0;
}