2016-09-02 1 views
5

Firebase Storageでのトークンの仕組みを理解しようとしています。Firebaseストレージトークンの理解

私のWebアプリケーションが画像をFSにアップロードするたびに、公開URLにトークンを追加します。問題は、同じ画像ファイルをWebアプリケーションの別の部分にアップロードするたびに、別のファイルを取得していないようですが、すでにアップロードされているファイルURLのトークンが異なるため、前の登録画像表示

これを解決する方法はありますか?

例:URLは、その後のimg SRC内のどこかに表示されていることを

storageRef.put(picture.jpg); 
uploadTask.snapshot.downloadURL 
// returns something like https://firebasestorage.googleapis.com/v0/b/<your-app>/o/picture.jpg?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e 

<img src="https://firebasestorage.googleapis.com/v0/b/<your-app>/o/picture.jpg?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e"> 

ユーザーは、プロセスを繰り返し、アプリの別のセクションで同じpicture.jpgをアップロードし、代わりにFirebaseストレージにブランドの新しいコピーを取得するのは、ファイルは新しいトークンで終わるURLで上書きされた場合;だから、12345

言う:

<img src="https://...picture.jpg?alt=media&token=12345"> // New upload renders fine 
<img src="https://...picture.jpg?alt=media&token=09cb2927-4706..."> // But old upload breaks because of wrong url 
+0

使用ローカルキャッシュ –

+0

これは、Webアプリケーションでは、各画像ファイルが同じであっても、独自のURLを必要とします。 – cerealex

+0

申し訳ありませんが、私はそれがモバイルアプリだと思った –

答えて

6

トークンは、アップロードの特定のバージョンのためにユニークです。新しいコンテンツでファイルを上書きすると、新たな疑わしいURLを含む新しいトークンが生成されます。

つまり、トークンは特定のブロブに固有です。つまり、格納場所ごとに一意ではありません。開発者とエンドユーザーが間違って意図しないデータを漏らさないように、セキュリティを強化する手段としてこれを行いました。

ただし、js SDKを使用して、保存場所(「gs://mybucket/myfile.png」)をダウンロードURLに変換することはできます。そうすれば、あなたが望むならばあなたはgs uriを渡すことができます。それを一度イメージに配置したいなら、完全なURLに変換してください。

参照:画像のhttps://firebase.google.com/docs/reference/js/firebase.storage.Reference.html#getDownloadURL