ロバメモ - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

クロスドメイン対策【Firebase】【WebGL】

やりたいこと

Firestorageにアセットバンドルを置いて、WebGLから読み込みたい。

問題点

クロスドメインでエラーがでる。
ローカルホストでも、Firebase Hostingでもエラーが出た。
f:id:nico-taniku:20191008092900p:plain:w500

解決方法

こちらを参考にさせていただきました。

qiita.com

概ね、かかれてある通りですが、自分用にメモ。

作業要件

・Firebaseが設定済みであること。

(1)インストール

GoogleCloud公式 インストールページ
Installing Google Cloud SDK  |  Cloud SDK Documentation

(1)インストールの方法は色々あるようだが、バージョニングされたアーカイブからパッケージをDLする。
(2)開いたフォルダをFirebaseのプロジェクトフォルダに入れる。
(3)ターミナルを起動して、cd パス でFirebaseのプロジェクトフォルダへ移動する。
(4)以下のコマンドを入力する。
※Winの場合は、コマンドが変わるので公式ページ参照。

./google-cloud-sdk/install.sh

(2)初期設定

(1)Firebaseプロジェクトフォルダに移動している状態で、以下を入力。
※Winの場合は、コマンドが変わるので公式ページ参照。

./google-cloud-sdk/bin/gcloud init

いろいろ聞いて来るので、必要に応じて返答する。

(3)クロスドメイン設定ファイルを作る

(1)概ねQiitaの記事の通り、cors.jsをFirebaseのプロジェクトフォルダに作成する。
私の場合は、"https://firebasestorage.googleapis.com"を入れないとダメだった。

[{

  "origin": ["https://firebasestorage.googleapis.com", "https://xxxx.web.app", "http://localhost:5000"],

  "responseHeader": ["*"],

  "method": ["GET"],

  "maxAgeSeconds": 86400

}]

注意点

ちょっとハマったので追記。
f:id:nico-taniku:20191011101541p:plain:h500
アセットバンドルを読み込む時のURLはFirestorageのダウンロードのほうを指定すること。
再アップロードしたら、URLが変わるっぽいのでこれも注意。

(4)作成したjsonファイルをアップロードする

(1)ターミナルを開き、Firebaseプロジェクトフォルダに移動している状態で、以下を入力。

./google-cloud-sdk/bin/gsutil cors set cors.json gs://xxxx.appspot.com/

以上。