Flutter x Firebase Auth 匿名認証について調べてみた

こんにちは、株式会社Pentagonでエンジニアをしているtsurumiです。

目次

この記事の内容

FlutterでFirebase Authの匿名認証を実装する機会があったので、その方法をまとめた記事になります。

匿名認証とは?

Firebase で認証する一時的な匿名アカウントを、Firebase Authentication で作成して使用できます。一時的な匿名アカウントを使用すると、アプリに登録していないユーザーが、セキュリティ ルールで保護されているデータを使用できるようになります。匿名ユーザーがアプリに登録する場合は、ログイン認証情報を匿名アカウントにリンクすると、それ以後のセッションでも引き続き、保護されているデータを使用できます。公式では書かれています。

簡単にいうと、アカウント登録・ログインをしなくてもFirestoreにアクセスできちゃう仕組みです。

実装方法

import 'package:firebase_auth/firebase_auth.dart';

class  AuthService {
    final _auth = FirebaseAuth.instance;

    // ①ログインしてるかチェック
      bool get isLoggedIn => _auth.currentUser != null;

    // ②匿名認証
    Future<UserCredential> signInWithAnonymously() => _auth.signInAnonymously();

    // ログアウト
    Future<void> signOut() async {
        await _auth.signOut();
    }

    // ユーザー削除
    Future<void> userDelete(User user) async {
        await user.delete();
    }
}
  1. まず、アプリ立ち上げ時にログインしているかのチェックを行う(①の関数)
  2. ログインしていない場合は匿名認証の関数を呼び出す(②の関数)
  3. FirebaseのダッシュボードのAuthenticationを確認してみるとuserが増えていることが確認できたらOKです。

注意点

  • この匿名認証は一度ログアウトして再度、匿名認証を行うと違うUIDでユーザーが作成されます。ログアウトする際にはユーザー削除することを忘れないようにしましょう。ユーザー削除をせずログアウトだけしてるとユーザーがとんでもなく増えてしまいます.....
採用情報はこちら
目次