はじめに
Supabaseを使ってDB処理を実装する中で、.match() の使い方につまずいたので、その内容を共有します。
内容
// 削除
export const deleteRecords = async (id) => {
await supabase.from("study-record").delete().match(id);
};
上記のコードで削除実行すると、400エラーが出現。
400エラーは、ブラウザから送信されたリクエストに誤りや不備があるため、サーバーが処理を拒否しているようです。
原因
.match() は { カラム名: 値 } のように、条件をオブジェクト形式で渡す必要があります。
しかし、最初は id の値だけを渡していたため、どのカラムに対する条件なのかを Supabase 側が判断できない状態になっていました。
解決
// 削除
export const deleteRecords = async (id) => {
await supabase.from("study-record").delete().match({ id });
};
オブジェクトにしたら無事に削除できました。
最後に
無事に解決できましたが、ちょっと時間がかかりました。
困った時は公式を見る癖をつけないとですね。
参考
ありがとうございます。