🔒

Supabase をコールしたら new row violates row-level security policy となった

に公開

なにこれ

Flutter から Supabase のテーブルにアクセスしようと思ったら以下のエラーにぶつかったので、どのように解決したかをメモしました。

PostgrestException(message: new row violates row-level security policy for table "user", code: 42501, details: Unauthorized, hint: null)

原因

最初に Row level security policy を Enabled にしていたのに、その設定をしていなかったことが原因でした。
image.png

解決方法

ポリシー作成画面を開く

Authentication > Policies > Creata a new policy でポリシーを作成します。
image.png

image.png

ポリシー内容を設定

全部使いたいので、Policy command は ALL にします。
細かい設定が必要であればここで select だけにするとかそういうことも可能。
using は true にしましょう。
image.png

出来上がったらこんな感じ。
image.png

無事治った!

自分の画面は載せられないですが、デバッグしてみてちゃんと返ってきた。よかったよかった。

GitHubで編集を提案

Discussion