質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

509閲覧

FirebaseのImageの保存においては、サーバーでリサイズしなくて良いのではないか。

kaggle

総合スコア17

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/01/22 10:48

FirebaseのStorageのruleを使う限りでは、
画像を保存する際に、フロント側でクロッピング(トリミングやリサイズのこと)をすれば、
それ用のサーバーを設けなくても同様のことができるのではないか。

Firebaseを使っていても、画像のresizeはgoogle clond functionを使っている例がネットで多く見られ、気になったので
投稿いたしました。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

FirebaseのStorageのruleを使う限りでは、

画像を保存する際に、フロント側でクロッピング(トリミングやリサイズのこと)をすれば、
それ用のサーバーを設けなくても同様のことができるのではないか。

Firebaseを使っていても、画像のresizeはgoogle clond functionを使っている例がネットで多く見られ、気になった

できる/できないで言うと、もちろんフロント側でも同様のことができます。
ただ画像処理は、比較的リソースを大量に必要とするので、それをフロントだけで行うよりも、可能な限り負荷分散して非同期的に処理(Firebaseにお任せ)するのがUX的に好ましいからです。
これはFirebase公式でもユースケースとして紹介されています。
https://firebase.google.com/docs/functions/use-cases?hl=ja#execute_intensive_tasks_in_the_cloud_instead_of_in_your_app

その場合「もととなる画像」さえFirebaseにアップロードされていれば、非同期でリサイズ等の処理が失敗したとしても、その画像をもとに、何度でもFirebase側だけで(フロント側にほとんど影響なく)リトライが可能とういうメリットもあります。

投稿2019/01/22 15:33

xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaggle

2019/01/23 01:46

ご返信ありがとうございます。 プロフィール画像とかのuploadの場合、cropperjsなどを使って、ユーザーが自分の顔だけを切り取って、トリミングさせる場合も、残りの処理であるリサイズに関しは、Clound Functionsに任せた方が良いでしょうか。 firebaseのruleでuploadされる画像のsizeを制御できるという認識を持っており、そうであるならば、このケースでは、サーバーでリサイズするメリットが分からなくなりました。(cropper.jsを使うと、顔の切り取りであるトリミングと同時に、サイズも制御できるから) cropper.jsを通した、プロフィールの顔のuploadでは、サーバーを用意するメリットがあまりないと考えています。 いかがお考えますでしょうか。 よろしくお願い致します。 https://fengyuanchen.github.io/cropperjs/
xenbeat

2019/01/23 02:45

> ユーザーが自分の顔だけを切り取って、トリミングさせる場合も、残りの処理であるリサイズに関しは、Clound Functionsに任せた方が良いでしょうか。 > cropper.jsを通した、プロフィールの顔のuploadでは、サーバーを用意するメリットがあまりないと考えています。いかがお考えますでしょうか。 まず、サーバーを用意(Firebaseにお任せ)するメリットは回答でもお伝えした通りです。 Firebaseにお任せするかの判断ポイントは、クライアント端末での処理が「要件として」現実的かどうかです。 ゆえにこの手の質問には一般解はなく、サポートする端末およびその想定スペック、レスポンスタイム、画像の管理方法等のアプリ開発要件によって判断することになります。 それが前提となりますが、 こちらのケースに関しては、クライアント側でトリミング、リサイズをやってしまうのもありだとは思います。 とりあえずやってみて、やっぱオリジナル画像は残しておきたい、複数のサムネイルを生成したい、クライアントの負荷をもうちょっと軽減したい等の状況になってから、Clound Functionsの利用を検討するというのも良いでしょう。
kaggle

2019/01/23 04:40

納得できました。 ひと昔と違って、多く人が十分なスペックの端末を持っていると考えているので、 まず、クライアント側でやってみて、不足があれば、Clound Functionsの利用を検討という方針で行っていこうと思います。 ありがとうございました。
guest

0

その発想はなかった……天才ですね。
単純に使われていないのはJavaScriptというスクリプト言語が
Cの1/20程度のパフォーマンスしか出ないって所に原因があるように思えます。

最近のノートパソコンやデスクトップならいざしらず、
スマホユーザーがローカルで画像をクロッピングして、元画像に添えてアップロードをし始めたらブチギレでしょうね。
画像の二重アップロードとサムネイル画像生成はユーザに押し付けるにはちと業が深いと思います。

コインハイブも、ぶっちゃけ広告収入の方がマシみたいな金にしかなってないみたいですし。
期待のWebAssemblyが流行っても名前ほどのパフォーマンスは出ません。


ちなみにJavaScriptで出来る事を増やすってのは、
「改ざん可能な領域を拡張する」のと同義です。
もともとは画像1個だけ見張っていれば良かったものを、サムネイル画像と本物の画像が両方妥当かを見張る必要が出てきます。

例えば単純所持違法化された児童ポルノ系の画像を、
サムネイル画像として差し替えられてたら取り除かないといけませんよね?
その作業が漏れていたらサービスとして致命的な事になりませんかね?っていう感じです。

この辺を正しく理解しつつ図を描き、
ユーザに背負わせた分は、その分サービス使用料から割り引く等で還元出来れば良いんじゃないかなと思います。

投稿2019/01/23 09:08

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問