はじめに

こんにちは、Rerurate_514と申します。

今回は暇だったので、ちょっと自分が作っていたアプリをwebで公開してみたものになります。

前提

前提として使用しているパッケージがwebに対応している必要があります。
pubdevにこんなことが書いてあるならいけます。


逆にこれがついていないものはwebアプリとしてビルドできないので、そのところ注意する必要があります。
あと結構、使えないものも多かったりします。
例えば、dart:ioとか、Image.fileとか。このあたりを使うときは大体を考える必要があります。ちなみにImage.fileの代替はImage.memoryです。

やり方

まず、Firebaseの導入をします。
この辺りはいろんなところで解説されているので、省きたいところですが、ちょっとだけ触ります。

firebaseコンソールから新しいプロジェクトを作成したら、ローカルでもセットアップします。
以前書いた記事の引用でもしときます。

インストールとログイン

まず、npmパッケージからfirebase-toolsをインストールする。

npm install -g firebase-tools

そして、Firebaseへログインする。

firebase login
元記事へのリンク

ここからfirebase initを打って設定を行う。
その設定の中でhostingを有効化する。

Use an existing projectを選択して、先ほど作成したfirebaseプロジェクトを選択。
あとは全部yでもいいかと思います。

firebase.jsonの中身の"public": "public""public": "build/web"にします。

あとはflutter build webをしてから、firebase deployをするだけですかね。

その他

webでデータベースを使用するときは、realmを使うことはできません。
Shared_preferencesdriftisarを使うようにしましょう。
正直realmを今まで使っていましたが、build_runnerのアップデートはしないし、web対応もないので、driftに乗り変えました。

driftを使う場合でも、drift_wokers.jssqlite3.wasmが必要ですけどね。

あとはcloudflareのドメインを持っているなら、DNSレコードを設定することでドメインを変えることができます。

firebaseは説明がしっかりしているので、それに従うだけでいいので楽でいいですよね。