Firebase Storageの使いかた
Silicon Valley Super Ware
2020年9月10日
Firebase Storageの使いかた
今日は、Firebase Storageの使いかたを紹介します。初期設定は、Cloud Firestoreと同様に、Firebaseコンソールから簡単にできます。
やる事は、「Storage bucket」を作って、暫定版のセキュリティルールを設定するだけです
後は、Firebaseのドキュメントに詳しく書かれていますが、以下のような記述でFirebaseのストレージにアクセスできるようになります。
// Firebase ストレージサービスへのリファレンス
const storage = firebase.storage();
// ストレージへのリファレンス
const storageRef = storage.ref();
さらにサブフォルダーを作成したり、サブフォルダー内のファイルへのリファレンスは以下の様にできます。
// サブフォールだーへのリファレンス
const subFolderRef = storageRef.child("subfolder");
// ストレージへのリファレンス
const fileRef = storageRef.child("subfolder/file.txt");
プログラム(Webサービス)からアップロードするには、アップロードのコードを書く必要があります。
const uploadTask = storageRef.child("subfolder/test.txt").put(file);
// Firebase ストレージサービスへのリファレンス
uploadTask.on('state_changed', (snapshot) => {
switch(snapshot.state) {
case firebase.storage.TaskState.PAUSED:
console.log("Upload is paused."):
break;
case firebase.storage.TaskState.RUNNING:
console.log("Upload is running.");
break;
}
}, (error) => {
console.log("Error:" + error);
}, () => {
// Upload 成功
uploadTask.snapshot.ref.getDownloadURL().then((downloadURL) => {
console.log("ファイルのURL:", downloadURL);
});
});
詳しいエラー処理の例もFirebaseのドキュメントに書かれています。
以上がFirebaseのStorageの基本的な使いかたになります。
データベースと連携するとより使いやすくなります!
Storageのデータは、フォルダーの中身(リスト)の取得などもサポートされています。しかし、実際の処理は、ファイル名やファイルの説明、ダウンロードのリンクなどをファイルをアップロードした際に取得してデータベースに保存しておくとスムーズに処理を行う事ができます。
データベースに保存しておくと便利な情報は
- ファイル名
- ファイルの説明
- ファイルのフォルダーへのパス(リファレンス)
- ダウンロードの為のURL
があると、フォルダー内のファイル情報の取得や、削除、ダウンロードリンクの取得を高速に行えるので、利用者の待ち時間を最小限にすることができます。
Cloud Firestoreと連携する事で、利用者の待ち時間を最小限にできます!
これが、外部のクラウドストレージサービスではなくFirebaseで全て対応するメリットです外部のクラウドストレージサービスのAPIを利用する場合、ネットワーク経由でファイルのパスやファイルのリストを取得する必要があるので、Firebaseのデータベースアクセスに比べると情報の取得に時間がかかるため、利用者の待ち時間が長くなる場合が帆と温度です。
最初は、Firebaseのコンソールからアップロード!
最初は、サービス全体の実装が最優先になると思うのでファイルのアップロードはFirebaseコンソールで行うようにして、管理側は多少不便でもサービスのメインの機能を作る事を優先させることが可能です。
次の段階は、ファイルのアップロードなどを行う管理のサービスを実装して、その際にデータベースとの連携を一緒に実装すると、サービスのアップグレードが可能です。
一度に実装しないのがコツ!
少し規模の大きなWebサービスの場合、複数のステップに分けた開発が成功の秘訣です。まずは、基本機能を実装してサービスを稼働させることに集中して、サービスの機能の改善や拡張は、幾つかのステップに分けて行うのがポイントです。
多くのサービスは最低限の機能でも、価値がある場合が殆どです。全ての機能の完成を待っていると、リリースまでに時間がかかりますし、検証も大掛かりになります。
機能を追加する形でのリリースは、最初のリリースを短期間で実現するとともに、テストも少なくなりますので、ビジネスを開始するタイミングが早められます。
例えば、最初の基本機能は無料で提供して、実際に使って頂いて、利用者の意見やフィードバックを集めたりして、サービスの完成度を上げるのに役立てる事ができます。
「無料」でサービスを提供する代わりに、実際にサービスを使ったサービスのアンケートをお願いすると、通常より高い確率で意見をもらえる可能性も高まります。
一人でテストするより、多くの人に無料でも使ってもらった方が完成度が上がります!
そのうえで、問題点を解消して、機能を追加する際に、有料化するという戦略を描くことができます。時間をかけて実装!
まずは、オンライン決済機能を作って、ビジネスをスタートさせて、そのあとで、オンラインコンテンツをクラウドストレージからダウンロードして提供する仕組みを作るという流れを作る事ができます。サービスの利用(販売)から決済を自動化できると、宣伝と営業の努力は必要ですが、少ない作業で収益を生み出す事が可能になります。
自動化して別のサービスを立ち上げる!
この流れが出来ると、Webサービスでビジネスを拡大する事が現実になります。
シリコンバレースーパーウエアでは、フリーランスの型だけではなく、プログラミングを職業とされる方にビジネスを意識した マインドセットを身に着けるお手伝いも提供しています。プログラミングは手段であって、それをどのように生かして、将来のキャリアに結び付けて行くかを長期的な視点で考えるのがとても大切です。この意識が出来ると勉強の方向も絞られて、あなたの夢を実現する道筋が見えてきます。
興味のある方は今すぐお問合せください!
またよろしければ、ニュースレターの登録をお願いします!大体週一回お届けしています。ブログよりは一歩踏み込んだもっと濃い内容を発信しています。

コメント
コメントを投稿