4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter x Supabase】データを追加するやり方+おまけつき

Last updated at Posted at 2023-12-02

スクリーンショット 2023-11-30 16.45.48(2).png

この記事は、株式会社ゆめみの23卒 Advent Calendar 2023のアドベントカレンダーになります!!
色々な種類の記事が投稿されるので、お楽しみに🤗

こんにちは。いせりゅーです。今回は、Flutter x Supabaseでデータを追加するやり方に加えて、必要そうな記載を書いてみました。(あくまでも一例です)

Supabaseを学習し始めてからまもないため、間違えた実装を記載するかも知れません。その場合はコメントなどで教えていただけると幸いです🙇

1、記載の漏れがないかを確認する
2、データを追加する
3、投稿画面を閉じる

こんな感じで進めていきます〜〜!!

記載の漏れがないかを確認する

こちらについては、さまざまな確認方法があると思いますが、今回は食べ物の名前と感想が記載できているかどうかの確認をしています。
お好みの方法で、警告文を出してください。

final foodTextController = TextEditingController();
final commentTextController = TextEditingController();

void post() {
  if (foodTextController.text.isNotEmpty && commentTextController.text.isNotEmpty) {
    // データの追加の処理を記載する
  } else {
  print('食べ物の名前or感想が入力されていません!');
}

データを追加する

実際にデータを追加してみます。


final supabase = Supabase.instance.client;

Future<void> post() async {
final user = supabase.auth.currentUser?.id;
final updates = {
  'user_id': user,
  'food_name': foodTextController.text,
  'comment': commentTextController.text,
  'created_at': DateTime.now().toIso8601String(),
  'heart': 0,
};

try {
  await supabase.from('posts').insert(updates);
} on PostgrestException catch (error) {
  print('error');
}

投稿画面を閉じる

こちらは今の画面から戻るだけで良さそうですね。

Navigator.pop(context);

ソースコード

final supabase = Supabase.instance.client;
final foodTextController = TextEditingController();
final commentTextController = TextEditingController();

Future<void> post() async {
  if (foodTextController.text.isNotEmpty && commentTextController.text.isNotEmpty) {
  final user = supabase.auth.currentUser?.id;
  final updates = {
    'user_id': user,
    'food_name': foodTextController.text,
    'comment': commentTextController.text,
    'created_at': DateTime.now().toIso8601String(),
    'heart': 0,
  };
  try {
    await supabase.from('posts').insert(updates);
    Navigator.pop(context);
  } on PostgrestException catch (error) {
    print('error');
  } else {
  print('食べ物の名前or感想が入力されていません!');
}

最後に

自分もまだまだ学習中ですが、Supabaseのいいところが毎日見つかってきてとてもいいですね。個人的にはこれからの発展に期待したいですね😁

ちょっとした宣伝

株式会社ゆめみの23卒のメンバーでアドベントカレンダーを作成しています。
新卒のフレッシュな記事がたくさん投稿予定なので、少しでも興味があれば購読いただけると幸いです!!

YUMEMI New Grad Advent Calendar 2023
4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?