はじめに
2025年の冬、初めてエディターを入れて Cursor を使い始めたときの話です(笑)
ポートフォリオ用のアプリを Cursor の AI エージェントと一緒に作っていたのですが、DB の認証がいつまでも通らない。
使っていたのは Supabase(DB・Auth)+ Google 認証 + Render(デプロイ)の3つ組み。どれか一つでもズレるとログインできない構成でした。
ぶっちゃけ、年末年始をこれで潰しました。お正月の雑煮より .env の方が頭に残っているレベルです U・ェ・U
原因をあれこれ調べた末に判明したのは、コードのバグでも設定ミスでもなく……
.env を保存していなかった という、地味すぎるやつでした 。。。(lll __ __)バタッ
同じ轍を踏みそうな人の参考になれば幸いです。
想定読者
- Cursor や AI コーディングを始めたばかりで、
.envの扱いがまだ曖昧な方 - 「keep」を押すのが怖くて、変更を確定できずに迷子になった経験がある方
- DB 接続エラーでハマっているのに、コード側ばかり見ている方
- 非エンジニアから開発を始めたばかりで、保存のタイミングがまだ感覚として身についていない方
私の属性
- 30代女性・事務職
- 2025年冬に Cursor を入れて、ポートフォリオ用アプリの開発を開始
- 構成は Supabase + Google 認証 + Render。コードは Cursor、
.envの値は 自分で手動コピペ - 当時は Git も
.envも「なんとなく知ってる」レベル
何が起きたか
流れはシンプルです。ただし、気づくまでが地獄でした。
- Cursor のエージェントに Supabase 連携と Google ログインの実装をお願いする
- Supabase・Google Cloud・Render のダッシュボードからキーをコピーし、自分で
.envに貼り付ける - ローカルや Render 上で接続テストをする
- 認証エラー(´・ω・`)
- 「Supabase のキーが間違ってる?」「Google の Client ID?」「Render の環境変数?」とあちこちを延々と疑う
- 何度やってもダメ — 年末年始もこの繰り返し
- たまたま別の場所で Web 版 Copilot に相談したら、「
.env保存した?」と言われる - エディターのタブを見る —
.envの横に ●(未保存マーク) - 震える手で Ctrl+S
- 接続テスト — 一発で認証成功 ((_๑òωó)_バァン
保存していないのに、ディスク上の .env は空っぽか古いまま。
アプリは古い環境変数を読みにいっていた、というオチです(笑)
数週間ハマっていたのに、保存した瞬間に通った。
あのときの衝撃は今でも忘れられません。今までAIとアチコチコード修正に画面確認と動いて来たのに .env タブを開いて、保存ボタン一発だったんですよ。*゚Д゚)ドキドキ から ((_๑òωó)_バァン への落差、でかすぎました。
いつからコードや設定が正しかったかは分かりませんが、とにかく 保存 が正解でした m(_ _)m
認証は犯人探しが難しい
これが問題が長引いたもう一つの大きな理由です。
今回の構成は Supabase + Google 認証 + Render の3つが噛み合わないと動きません。
コードは Cursor が書いてくれても、各サービスのダッシュボードで設定を合わせるのは自分の仕事です。
| 疑ってた場所 | 心の声 |
|---|---|
| Supabase の API キー / URL | コピペミスしてない? anon key と service role を間違えてない? |
| Supabase Auth の設定 | リダイレクト URL は合ってる? RLS が厳しすぎ? |
| Google 認証(OAuth) | Client ID / Secret は本番用? 承認済みドメインに Render の URL 入れた? |
| Render の環境変数 | ダッシュボード側の値とローカルの .env は揃ってる? |
| Cursor のコード | さっき keep したやつ、コールバック URL 壊してない? |
.env の中身 |
手動で貼ったつもりなのに、どこか1文字違う? |
3つのサービス × ローカルと Render の2環境で、「どこが壊れてるか」が一発では分からない。
エラーメッセージは出るけど、犯人は Supabase なのか Google なのか Render なのか、初心者には区別がつきません。
実際には .env 未保存という エディター運用の問題 だったのに、見た目は 3サービス連携全体の不具合 に見えていたんです。
だから年末年始、家族がゆっくりしている横で、私だけ Supabase・Google Cloud Console・Render の3タブを行ったり来たりしていました ((( _( 'ω') コソコソ
なぜ .env を保存しなかったのか
ここが本題です。理由は4つ重なっていました。
1. 「うまくいくまで keep しないで」と言われていた
AI エージェントでの実装は、最初の頃 失敗の連続 でした。
そのとき周りから、こんなアドバイスがありました。
- 動くまで変更を確定しない
- うまくいかない diff は keep しない
- いったん様子を見てから採用する
正しい話なんですよね。でも私の頭の中では、こう変換されていました。
keep = 変更を確定する = もう戻せないかも
だから「認証が通るまで keep しない」=「.env も含めて、全部確定しない」になっていたんです ((( _( 'ω') コソコソ
2. 認証が通らないから、いつまでも keep も保存もしなかった
悪循環が発生しました。
- 保存していない
.envを読んでいる - だから認証が失敗する
- 失敗するから「まだ確定できない」
- 確定しないから保存もしない
失敗が続くほど keep できない。keep しないから失敗が続く。
ループの入口と出口が同じ場所にあって、数週間ひねり出せませんでした U・ェ・U
3. keep 連打で壊滅した前科があった
その前に、別のお試しで keep を押しまくって大惨事 を起こした経験があります。
- エージェントの提案を次々 keep
- 気づいたらプロジェクト全体が想定と別物
- 当時は Git もマメにしていなかった⇒欲しい位置に戻せない
- 元に戻す手段がなく、お蔵入り
このトラウマが強くて、「keep は最後の一押し」というより 「封印ボタン」 扱いになっていたのも大きいです(笑)
ヾノ。ÒдÓ)ノシ バンバン!! と keep して、プロジェクトがヾノ。ÒдÓ)ノシ バンバン!! と崩壊していく感じです。
4. .env だけ保存が必須だと、知らなかった
.env の存在自体は、Cursor に 推奨フォルダ構成を提案させたとき にファイルごと作ってもらった、という程度の認識でした。
「機密情報はここに書くやつだな」くらいは分かっていたけど、それ以上は曖昧だったんです(笑)
でも 「他のファイルと違って、明示的に保存しないと反映されない」 という感覚が、当時の私にはありませんでした。
-
.tsや.tsxは Cursor で keep したあと保存した記憶がある -
.envは 自分で貼り付けた から「もう書いてあるはず」 - タブの ● マークの意味を、
.envに対して正しく解釈できていなかった
「なんとなく必要なファイル」は分かっていたのに、運用としての保存までは届いていなかった、というのが正直なところです |ω・*)
ハマり続けたあとでネットを漁り、ようやく「ああ、こういうものか」と腑に落ちた記事がいくつかあります(次の 参考リンク 参照)。知っていれば年末年始は救えたかも、と思うとちょっと切ないです(笑)
参考リンク(.env って何?)
当時の私みたいに「ファイルはあるけど、中身の意味がぼんやり」な人向けに、説明がわかりやすかった記事をまとめました。全部読む必要はなく、困ったときの辞書代わりでどうぞ。
| 記事 | おすすめポイント |
|---|---|
| 【ぼうけんのしょ】.envファイルってなに?調べてみた! #初心者 | 初心者目線。「設定メモ」「配達アプリの届け先」のたとえが分かりやすい |
| APIキーを安全に管理しよう!.envファイル入門 | ふわふわコード |
KEY=VALUE の書き方、.gitignore、.env.example まで一通り。AI にコード書かせるときの伝え方もある |
| .env | PC・IT用語集(のべろぐ) | 用語辞典形式。環境変数との違いや「なぜコードに直書きしないか」が整理されている |
個人的には、Qiita の「ぼうけんのしょ」記事の 「アプリに渡す設定メモ」 というたとえが、いちばんしっくりきました。
「保存したのに通らない」ときは、まずそのメモが ちゃんと届いているか(=ファイルを保存したか)を疑う、と理解すると腹落ちします ψ(`∇´)ψ
気づいてからやっていること
今は次の3つだけ、意識するようにしています。
| やること | 理由 |
|---|---|
.env を触ったら すぐ Ctrl+S
|
未保存のまま接続テストしない |
| Git を先に使用 する | keep 失敗しても戻れる道を作る |
| keep と保存を分けて考える | keep は diff の採用、保存はディスクへの書き込み。別操作 |
まとめ
-
.envは書いたつもりと保存済みは別物。接続エラーが続くときは、まずタブの ● を見る - Supabase + Google 認証 + Render のようにサービスが重なると、犯人探しが難しい。地味な原因ほど見落としやすい
- 認証失敗 → keep しない → 保存しない のループに入りやすい。特に AI 実装の初心者期は注意
- keep 恐怖は Git が効く。壊しても戻れると、だいぶ楽になる
-
.envの存在を知っていることと、毎回保存する習慣は別スキル - 意味がぼんやりなら、上の 参考リンク で
.envの役割から復習する
同じ轍を踏んでいる人がいたら、タブを見てください。
コードを疑う前に、保存ボタンを疑ってください (ノ´∀`*)
年末年始を .env に捧げた私より。
m(_ _)m 読んでくれてありがとうございました (*´▽`*)