はじめに
Supabaseとは、Firebaseの代替を謳っていてモバイル・Webなどのアプリ開発に伴う充実したサービスを提供してくれるSaasとなります。
また、本筋からずれてしまうため省略しますが、Supabaseの優れた機能の中の1つとしてLocal環境が簡単に構築できる機能があります。
今回の問題
Supabaseはクライアントで利用する際、以下のような初期化処理を行います。
await Supabase.initialize(
url: 'https://domain.com:54321,
anonKey: 'xxxxxxxxxx,
);
今回、このローカル開発をする中でiOSでは正常にSupabaseにアクセスできるのにAndroidだとアクセスできない事象が発生していました。
もちろん、Androidのネットワーク設定は完了しています。
解決法
今回、たまたまSupabaseを用いていましたがSupabaseが起因というより、PCのlocalhostはAndroid Emulatorからアクセスできないため別のURLを指定しないといけないのです。
そのため、Supabase.initialize
をする際に指定するURLはそれぞれ以下のようにしてください。
Before
💡 Supabaseのローカルは以下のURLで基本的にアクセスします
http://localhost:54321
After
iOS
http://127.0.0.1:54321
Android
http://10.0.2.2:54321
以上です。
ネットワーク設定含め、初回しかしないし忘れがちなので備忘録として記載しました。