LoginSignup
0
0

More than 1 year has passed since last update.

Flutter × Firebase ユーザー登録

Last updated at Posted at 2021-12-06

本投稿は TECOTEC Advent Calendar 2021 の7日目の記事です。

こんばんは、次世代デジタル基盤開発事業部(旧ブロックチェーン事業部)の広瀬です。

今回はよく見かけるメールアドレスとパスワードによるユーザー作成機能を実装しました。
ユーザ作成だけだと味気なかったため、コレクション「users」を用意し
こちらにもデータを残す想定で進めます。
※復習もかねて

比較的簡単な実装なので、サクッと進めます。

前提条件

Flutter開発環境が構築されていること

使用したパッケージ

firebase_auth
cloud_firestore

本題

それでは早速作成から

static final _firebaseAuth = FirebaseAuth.instance;
static final _firestoreInstance = FirebaseFirestore.instance;
static final CollectionReference users = _firestoreInstance.collection("users");

//作成
var result = await _firebaseAuth.createUserWithEmailAndPassword(email: メールアドレス, password: パスワード);
await users.doc(result.user!.uid).set({
        'name' : ユーザ名,
        'self_introduction':自己紹介,
        'create_time':Timestamp.now(),
        'update_time':Timestamp.now()});

これでユーザー情報がFirebaseに登録されていれば、完了です。
いきなりソースで驚くかもしれませんが、ユーザ−作成は以上です。
あとのパラメーターはお好みで設定していただければ大丈夫です。

FirebaseFirestore.instanceのcollectionからuidを指定すると取得できます。
ユーザーの更新や削除は下記の通りです。
※更新している情報は例です。

static final _firestoreInstance = FirebaseFirestore.instance;
static final CollectionReference users = _firestoreInstance.collection("users");

//更新
await users.doc(uid).update({
        'name' : ユーザ名,
        'self_introduction':自己紹介,
        'update_time':Timestamp.now(),
      });

//削除
await users.doc(uid).delete();

ユーザー情報が更新されていれば、完了です。

今回簡単なユーザー機能を紹介しましたが、
ほかにもgoogle_sign_in.dartパッケージを利用したGoogle認証機能や
登録したメールアドレスへメールを送信し、アドレスの確認機能など実装できます。
また機会があれば続きから紹介したいと思います。

以上、Firebaseを利用したユーザーの作成、更新、削除機能の実装でした。

感想

いかがだったでしょうか。
今回人生初のプログラムに関するブログを投稿させていただきました。
このブログ用に簡単なSNSアプリを作成し、そのアカウント機能を一部抜粋した内容になっておりますが、Modelなど真面目に分けて作成したため、逆にブログにまとめるため時間がかかってしまいました。

こういう場合は、画面と処理の2ファイルでまとめても良いかもしれませんね。
書き方、量については引き続き考えたいと思います。

[https://www.tecotec.co.jp/recruit/:embed:cite]

0
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
0
0