Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Admin Cloud StorageAPIの概要

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Cloud Storage for Firebase は、高可用性とグローバルな冗長性を備えたエクサバイト規模のオブジェクト ストレージ ソリューションであるGoogle Cloud Storageバケットにデータを保存します。 Firebase Admin SDK を使用すると、特権環境から Cloud Storage バケットに直接アクセスできます。次に、 Google Cloud Storage APIを使用して、バケットに保存されているオブジェクトを操作できます。

デフォルトのバケットを使用する

Admin SDK を初期化するときに、デフォルトのバケット名を指定できます。次に、このバケットへの認証済み参照を取得できます。バケット名には、 gs://やその他のプロトコル プレフィックスを含めないでください。たとえば、 Firebase コンソールに表示されるバケット URL がgs://bucket-name.appspot.comの場合、文字列bucket-name.appspot.comを Admin SDK に渡します。

Node.js

const { initializeApp, cert } = require('firebase-admin/app');
const { getStorage } = require('firebase-admin/storage');

const serviceAccount = require('./path/to/serviceAccountKey.json');

initializeApp({
  credential: cert(serviceAccount),
  storageBucket: '<BUCKET_NAME>.appspot.com'
});

const bucket = getStorage().bucket();

// 'bucket' is an object defined in the @google-cloud/storage library.
// See https://googlecloudplatform.github.io/google-cloud-node/#/docs/storage/latest/storage/bucket
// for more details.

ジャワ

FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
    .setStorageBucket("<BUCKET_NAME>.appspot.com")
    .build();
FirebaseApp.initializeApp(options);

Bucket bucket = StorageClient.getInstance().bucket();

// 'bucket' is an object defined in the google-cloud-storage Java library.
// See http://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/com/google/cloud/storage/Bucket.html
// for more details.

パイソン

import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage

cred = credentials.Certificate('path/to/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
    'storageBucket': '<BUCKET_NAME>.appspot.com'
})

bucket = storage.bucket()

# 'bucket' is an object defined in the google-cloud-storage Python library.
# See https://googlecloudplatform.github.io/google-cloud-python/latest/storage/buckets.html
# for more details.

行け

import (
	"context"
	"log"

	firebase "firebase.google.com/go/v4"
	"firebase.google.com/go/v4/auth"
	"google.golang.org/api/option"
)

config := &firebase.Config{
	StorageBucket: "<BUCKET_NAME>.appspot.com",
}
opt := option.WithCredentialsFile("path/to/serviceAccountKey.json")
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
	log.Fatalln(err)
}

client, err := app.Storage(context.Background())
if err != nil {
	log.Fatalln(err)
}

bucket, err := client.DefaultBucket()
if err != nil {
	log.Fatalln(err)
}
// 'bucket' is an object defined in the cloud.google.com/go/storage package.
// See https://godoc.org/cloud.google.com/go/storage#BucketHandle
// for more details.

Admin SDK によって返されたバケット参照を、公式のGoogle Cloud Storage クライアント ライブラリと組み合わせて使用​​して、Firebase プロジェクトに関連付けられたバケット内のコンテンツをアップロード、ダウンロード、および変更できます。 Firebase Admin SDK を使用する場合、Google Cloud Storage ライブラリを認証する必要はありません。 Admin SDK によって返されたバケット参照は、Firebase アプリの初期化に使用された資格情報で既に認証されています。

カスタム バケットを使用する

上記のデフォルト以外の Cloud Storage バケットを使用する場合、または 1 つのアプリで複数の Cloud Storage バケットを使用する場合は、以下に示すようにカスタム バケットへの参照を取得できます。

Node.js

const bucket = getStorage().bucket('my-custom-bucket');

ジャワ

Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");

パイソン

bucket = storage.bucket('my-custom-bucket')

行け

 bucket, err := client.Bucket("my-custom-bucket")

カスタム Firebase アプリを使用する

複数の Firebase アプリとやり取りするより複雑なアプリケーションを構築している場合は、特定の Firebase アプリに関連付けられた Cloud Storage バケットに次のようにアクセスできます。

Node.js

const bucket = getStorage(customApp).bucket();

ジャワ

Bucket bucket = StorageClient.getInstance(customApp).bucket();

パイソン

bucket = storage.bucket(app=custom_app)

行け

otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")

Google Cloud Storage クライアント ライブラリ

Firebase Admin SDK は、 Google Cloud Storage クライアント ライブラリに依存して、Cloud Storage へのアクセスを提供します。 Admin SDK によって返されるバケット参照は、これらのライブラリで定義されたオブジェクトです。ファイルのアップロードダウンロードなどのユースケースで返されたバケット参照を使用する方法については、Google Cloud Storage クライアント ライブラリのドキュメントと API リファレンスを参照してください。