1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Error inserting data: {code: '22P02', details: null, hint: null, message: 'invalid input syntax for type uuid: "pFfzFQz5O7fO6gvxKL7EoctB5N52"'}

1
Posted at

はじめに

アプリ開発中に、TBL登録するさいにエラーが起きました。
Typeのことでエラーが出て解決するまでに時間がかかりました。

問題

booksのTBL構造は以下で設定していました。

Name Type Option
id int8
user_id uuid non-null
title varchar non null
BookId
import { useAuthContext } from "../context/AuthContext";

export const BookId: FC = memo((props) => {
    const { user } = useAuthContext();
        if (bookId === "new") {
            const registerBook = await supabase.from("books").insert({ user_id:user?.uid, title: data.title });
            if (registerBook.error) {
                console.error("Error inserting data:", registerBook.error);
                return;
            }
            currentBookId = registerBook.data.id;
        }

bookのTBLにuser_idとtitleのデータを登録しようとしていました。

解決方法

Firebase UUIDとSupabaseのUUID形式が違うから発生していました。

Firebase UUIDは完全ランダムな文字列に対し、
SupabaseのUUIDは550e8400-e29b-41d4-a716-446655440000みたいな感じです。
UUID形式だけど、全然違う内容となっています。

なので、今回はbookのuser_idの形式をuuidからvarcharに変更しました。

また、registerBook.dataがnullになっていたので、select().single()も追加し修正しました

修正したbooksのTBL構造は以下です。

Name Type Option
id int8
user_id varchar non-null
title varchar non null
BookId
import { useAuthContext } from "../context/AuthContext";

export const BookId: FC = memo((props) => {
    const { user } = useAuthContext();
        if (bookId === "new") {
            const registerBook = await supabase.from("books").insert({ user_id:user?.uid, title: data.title }).select().single();
            if (registerBook.error) {
                console.error("Error inserting data:", registerBook.error);
                return;
            }
            currentBookId = registerBook.data.id;
        }

おわりに

Firebase UUIDとSupabase uuidが違うので留意する

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?