2017-05-29 38 views
0

私は、データストレージとユーザー認証にFirebaseを使用するクロスプラットフォームのモバイルアプリケーションを構築しています。私はまた、いくつかのmp4ファイルへの直接URLを必要とするSDKを使用しています。これまでのところ、これらのビデオファイルは別のサーバーでホストされていましたが、Firebaseのシンプルさ/スケーラビリティのために、別々のファイルではなくむしろファイルに保存したいと考えています。しかし、私はファイルへの直接のURLを持つことができる必要があります。Firebase StorageリソースURLに直接アクセスすることはできますか?

私は、たとえば、ファイルのFirebase保管場所を使用して、私のブラウザーからのテストファイルにアクセスするために行く:

APPNAME.appspot.com/RESOURCENAME.mp4 

私は404エラーを取得します。

私は次の私のルールを設定している:

service firebase.storage { 
    match /b/{bucket}/o { 
     match /{allPaths=**} { 
      allow write: if request.auth != null; 
      allow read: if true; 
     } 
    } 
} 

はURLから直接Firebaseストレージリソースにアクセスする方法はありますか?

EDIT:アプリケーションのファイルのUUIDに基づいてリソースファイルが動的にアクセスされるため、ランダムに生成されるのではなく、ストレージのファイルの論理的な場所に基づいてURLを追加する必要があります。また、推測不能なリンクを格納/参照するファイルが多すぎます。

答えて

1

Cloud Storageのファイルへのデフォルトアクセスは、セキュリティルールによって管理されます。それは意図的です。

しかし、Firebase SDKを介してファイルをアップロードすると、そのファイルのいわゆるダウンロードURLも生成されます。ダウンロードURLは、ファイルへの読み取り専用アクセスを提供する見込みのないURLです。ここで説明する方法で、他のユーザーと共有するために作られています。

ダウンロードURLを生成するには、https://firebase.google.com/docs/storage/ios/download-files#generate_a_download_urlのドキュメントの指示に従ってください(他のプラットフォームのドキュメントにも同様のセクションがあります)。

1

これはあなたの質問に対する答えではありませんが、実際にはFirebase Hostingを使用してください。 Firebase Storageは、静的コンテンツよりもユーザーのアップロードと共有に重点を置いています。

ホスティングへのアップロードは、Firebase CLIを使用すると非常に簡単です。 https://www.youtube.com/watch?v=meofoNuK3voホストするファイルを 'public'フォルダに置き、firebase deployを実行します。

関連する問題