Open5
Supabaseお試し
Supabaseのローカル開発環境ではsupabase start
時に出てくるAPI URLとanon keyを使う必要がある。
今回はNuxtを使っていたので、API URLとanon keyを.env.local
ファイルに書いてdevサーバーの起動時に--dotenv .env.local
とオプションを渡す必要がある。
supabase.auth.signInWithPassword
でログインする際には、ログイン成功時にリダイレクトさせることがsupabase側の仕組みとしてなさそう。
初めてsupabase start
したときに以下のようなエラーが出た。supabaseもdockerも再起動しても治らなくて、ChatGPTにきいて解決した。
failed to create docker container: Error response from daemon: Conflict. The container name "/supabase_vector_foo" is already in use by container "...". You have to remove (or rename) that container to be able to reuse that name.
エラーの内容としてはコンテナの名前が被ったということだが、このとき他にコンテナはなかったのでよくわからなかった。
$ docker rm 4a999b6dade6
Error response from daemon: No such container: ...
結局Dockerのキャッシュをクリアすることで解決した。
$ docker system prune -f
Dockerも素人なので結局原因はわからない。
型情報の生成
$ supabase gen types --lang=typescript --local > database.types.ts
$ supabase gen types --lang=typescript --project-id "$PROJECT_REF" --schema public > database.types.ts
SupabaseというよりNext.jsの話だが。
Vercelへデプロイするときに環境変数の設定を忘れていた。SupbaseのProject URLとAPI KeyをNEXT_PUBLIC_
付きの環境変数で設定していたた。NEXT_PUBLIC_
付きの環境変数はインライン展開されるため、Vercelの設定であとから追加しても再ビルドするまで反映されない。