やる事はクリックとコピペだけ!Flutter x FirebaseでFacebook認証を徹底解説するよ!

Dart

概要

どうも、@daiki1003です!


「Facebookログインを実装したいけど何から初めて良いか分からないよ…」

今回の記事では、そんなあなたのために
Flutter x Firebase AuthでのFacebookログインについて詳しく解説しています!

あなたがやることは
クリックとコピペのみです!
めっちゃ簡単!

前提

今回の記事では、Firebaseプロジェクトは作成されていると言う前提で書いています。
もし、まだでしたら下記からお願いします!
2,3分で出来ると思います。

【超簡単!】FlutterでFirebaseを使って爆速コーディング!〜登録から認証まで〜
概要 みなさん、Firebase使ってますか? 「個人開発で何かを開発して世に出してみたい!」 って欲望のある人は確実に使った方が良いと思います。 めちゃくちゃ便利ですよ。 チーム開発した事がある人はすごさわかると...

今回のソースコード

例によって、サンプルコードはgithubにあげてあります。
firebase_facebook ブランチに移動して

・bundleID
・GoogleService-Info.plist または google-services.json

を設定すればすぐに動きます。

GitHub - daiki1003/firebase_sample: This is firebase sample created with flutter.
This is firebase sample created with flutter. Contribute to daiki1003/firebase_sample development by creating an account on GitHub.

ここからの流れ

以下の5ステップとなります。
どれもクリック or コピペで出来ます!

1. Firebase側でFacebook認証の設定
2. Facebook Developersでのログイン設定
3. Flutter側でFacebook認証の設定
4. Facebookでログイン
5. Flutter側でFacebookによる認証情報をFirebaseに送信

Firebase側でのFacebook認証の設定

Firebaseコンソールにアクセス

Sign in - Google Accounts

Authenticationを選択

Sign-in Methodの選択

Facebookの選択

「アプリケーションID」と「アプリ シークレット」を入力して保存

ここで、リダイレクトURIをコピーします。

Facebook Developersでのログイン設定

Facebook Developersでのアプリ登録、Facebookログインの設定

こちらに関しては、とても長くなるので別記事で解説しています。

7分で出来る!Facebook Developersでアプリの登録からログイン情報の登録までを徹底解説!
概要 どうも、です! 本日は、Facebook Developersでのアプリの登録/セットアップ周りの解説をしたいと思います。 「Facebook Developers、前とUI違って全然分からない...」 「Fa...

リダイレクトURIの設定

「Facebookログイン」 > 「設定」を開くとこの様な画面になります。
先ほどコピーしたリダイレクトURIをペーストします。

Flutter側でFacebook認証の設定

flutter_facebook_loginのインストール

flutter_facebook_loginをインストールします。

flutter_facebook_login | Flutter package
A Flutter plugin for allowing users to authenticate with native Android & iOS Facebook login SDKs.

インストールの方法が分からない方はこちらの記事を参考にしてみてください。

【超簡単!】Flutterのパッケージのインストール方法を説明するよ!
概要 Flutter(Dart)で画像のクリッピングするコードが書けますか? Flutter(Dart)でhttp通信するコードが書けますか? 大丈夫、書けなくて良いんです。 Flutterでは、色んな人が使いそ...

firebase_authのインストール

firebase_auth | Flutter package
Flutter plugin for Firebase Auth, enabling authentication using passwords, phone numbers and identity providers like Google, Facebook and Twitter.

まだの人はfirebase_authもインストールしておいてください!

これで、準備完了です!

Facebookでログイン

認証部分

import 'package:flutter_facebook_login/flutter_facebook_login.dart';
import 'package:firebase_auth/firebase_auth.dart';

static final facebookLogin = FacebookLogin();
void logIn() async {
  final result = await facebookLogin.logIn(['email']);
 
  switch (result.status) {
    case FacebookLoginStatus.loggedIn:
      final credential = FacebookAuthProvider.getCredential(
          accessToken: result.accessToken.token);
      final authResult =
          await FirebaseAuth.instance.signInWithCredential(credential);
      print(authResult.user.uid);
      break;
    case FacebookLoginStatus.error:
      print('error, ${result.errorMessage}');
      break;
    case FacebookLoginStatus.cancelledByUser:
      print('cancelled');
      break;
  }
}

FacebookLogin クラスをインスタンス化します。
こちらがlogInやlogOutメソッド、またisLoggedInなどのプロパティを保持しているクラスです。

このインスタンスに対してlogInを投げると Future<FacebookLoginResult> が
取得出来ますので、その結果に応じて処理をしています。

Flutter側でFacebookによる認証情報をFirebaseに送信

さて、成功した場合は認証情報をFirebaseに伝えなければいけません。

final credential = FacebookAuthProvider.getCredential(
    accessToken: result.accessToken.token);
final authResult =
    await FirebaseAuth.instance.signInWithCredential(credential);

FacebookAuthProvider は firebase_auth プラグインに含まれているクラスです。
getCredentialで認証情報をアクセストークンより取得して、それをsignInWithCredentialに伝えています。

さいごに

いかがでしたでしょうか?
やはりFirebaseを使うとコピペとクリックだけでいけてしまいますね…。
恐ろしやw

誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非Twitter (@daiki1003)Instagram (@ashdik_flutter)のフォローお願いします♪

Twitterコミュニティ参加お願いします

Twitterコミュニティ「Flutter lovers」を開設しました!
参加お待ちしております😁

☕️ Buy me a coffee

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!

一緒に読みたい

Flutter x FirebaseでSign in with Appleはクリックとコピペだけで出来る!手順を徹底解説するよ!
概要 「Sign in with Appleやらなきゃいけないのは分かってるけどどうやれば良いか分からない...。」 この記事では、そんなあなたのために Flutter x Firebase x Sign in with Ap...
簡単すぎない?FirebaseAuthとFlutterのStreamBuilderで認証前後の画面をコーディングしてみよう!
概要 どうも、です! 前回までで、Firebaseの登録から認証までを実装出来ました。 ここまで出来ると、 「今度は認証が済んでるかどうかで表示するビューを変更したい」 と言う欲に駆られ...
https://amzn.to/3dO4lAW

コメント

タイトルとURLをコピーしました