2016-09-30 16 views
0

私は、電子商取引サイトのホスティングとデータストレージの両方にfirebaseを使用しています。各製品には、RTDBに格納されているテキストデータと、Storage Bucketに格納されているイメージがあります。今、私がプロフィールページで製品にアクセスすると、RTDBとStorage Bucketの2つのコールを行う必要があります。 1つのネットワークコールで両方を取得できる方法はありますか?Firebase RTDBとストレージからデータを取得する

ありがとうございました!

答えて

1

いいえデータベースとストレージは別々のAPIを使用しているため、1つの要求で両方を取得する方法はありません。私は、彼らがどのように実装することが可能であろうとも、私は確信していません。

の場合、実際にははすべて1つのAPIリクエストですべてを行う必要がありますが、回避策がある可能性があります。 RTDB entiresは文字列なので、base64でエンコードされた文字列またはデータURIとしてエンコードしてイメージ化し、そのようにデータベースに保存することができます。次に、RTDBにアクセスすると、文字列をデコードしてイメージに戻します。 RTDBエントリごとに10MBの制限があると思うが、それはおそらく問題ではないだろう。大きな課題は、ストレージバケットからRTDBにすべてのイメージを移行し、ストレージバケットに触れずにRTDBを通してすべてを実行するようにアプリケーションを書き直すことです。

+0

これは技術的に可能ですが(実際にはFirebase Storageの導入前に推奨されていましたが)、2つの要求のネットワークオーバーヘッドが発生することを強くお勧めします。ストレージ内のファイルは簡単にキャッシュ可能であるため、2つの要求が終了することはほとんどなく、ストレージ内のイメージをデータベースよりも保存して配信する方がはるかに安いです。保存しているデータによっては、オブジェクトのカスタムメタデータに一定量のデータを保存することもできます(https://firebase.google.com/docs/storage/web/file-metadata) –

+0

@MikeMcDonald本当に*魅力的な理由がない限り、ストレージバケツを使うべきです。 – jered

関連する問題