Udemyセール開催中! 対象コースが1,220円から

【FlutterFire】匿名認証でサインインする

今回はFirebaseAuthで匿名認証をしてサインインする方法を紹介します。

目次

下準備

  1. Firebaseで新規プロジェクト作成
  2. Authenticationで「匿名」を有効にする
  3. pub.devから「firebase_core」と「firebase_auth」を導入
  4. 初期コードをコピペ

匿名ゲストを有効化

Firebaseプロジェクト > Authentication > Sign-in methodから「匿名」をクリックします。

「匿名」を有効にして保存をクリック、これでFlutterアプリの匿名ゲストのサインインを認証できるようになります。

初期コードをコピペ

//初期コード
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_auth/firebase_auth.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(
    MaterialApp(
      home: MyApp(),
    ),
  );
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {

  Future<void> _anonymousSignin() async{}

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('ログイン'),
      ),
      body: Center(
        child: SizedBox(
          width: 200,
          height: 50,
          child: ElevatedButton(
            onPressed: _anonymousSignin,
            child: Text('匿名サインイン'),
          ),
        ),
      ),
    );
  }
}

匿名ゲストを認証させる

記事下の完成コードで示している「ステップ○」を参考にして読んでみて下さい。

ステップ1:FirebaseAuthをインスタンス化する

//ステップ1
final _auth = FirebaseAuth.instance;

FirebaseAuthをインスタンス化します。

ステップ2:匿名認証する

//ステップ2
Future<void> _anonymousSignin() async {
  UserCredential anonymousUser = await _auth.signInAnonymously();
  print('uid: ${anonymousUser.user!.uid}');
}

匿名認証するにはFirebaseAuth.instance.signInAnonymously()を使用します。また、匿名ユーザーでも「uid」を取得できます。

完成コード

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_auth/firebase_auth.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(
    MaterialApp(
      home: MyApp(),
    ),
  );
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  //ステップ1
  final _auth = FirebaseAuth.instance;

  //ステップ2
  Future<void> _anonymousSignin() async {
    UserCredential anonymousUser = await _auth.signInAnonymously();
    print('uid: ${anonymousUser.user!.uid}');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('ログイン'),
      ),
      body: Center(
        child: SizedBox(
          width: 200,
          height: 50,
          child: ElevatedButton(
            onPressed: _anonymousSignin,
            child: Text('匿名サインイン'),
          ),
        ),
      ),
    );
  }
}

以上です。

参考

  • URLをコピーしました!
目次
閉じる