🔖

[Flutter✖️Firebase]匿名アカウントからGoogleアカウント連携

2 min read

初めに

2021/11/13執筆
こんにちは、えんでばーです。
firebaseの匿名アカウントからgoogleアカウント連携の仕方を紹介します。

この記事の対象

  • すでに匿名ログインは終わってる

実装

firebaseのプロバイダーにGoogleを追加

Android SHA-1 追加

SHA-1の追加方法

ターミナル開き

cd android
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

//もしくは
cd andorid 
./gradlew signingReport

ターミナル開き
下の画像の黄色の所コピーしてfirebaseのフィンガープリント追加押して入れる

アンディーロイディ終わり

iosセットアップ

Xcode->GoogleService-infoのREVERSED_CLIENT_IDをコピー

info.plistに下記のコード追加

<array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>ここは上でコピったやつ</string>
            </array>
        </dict>
 </array>


ios終わり

google_sign_inライブラリを入れる

https://pub.dev/packages/google_sign_in/install

アカウント連携ボタンを作る

好きなように作ってくれ

呼び出す関数作成

class LinkAccountController extends GetxController {
  final googleLogin = GoogleSignIn(scopes: [
    'email',
    'https://www.googleapis.com/auth/contacts.readonly',
  ]);

  void googleSignIn() async {
    final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
    // Obtain the auth details from the request
    final GoogleSignInAuthentication googleAuth =
        await googleUser!.authentication;

    // Create a new credential
    final OAuthCredential credential = GoogleAuthProvider.credential(
      accessToken: googleAuth.accessToken,
      idToken: googleAuth.idToken,
    );
    final userInfo =  await FirebaseAuth.instance.currentUser!.linkWithCredential(credential);//ここで連携してるぞ!
    print(userInfo.user!.uid);
    print(userInfo.user!.email);
  }
}

これを呼び出すだけ


から

終わり

終わりに

めっちゃ簡単でしたね。
これみてやった人twitterフォローしてくれよな!

https://twitter.com/endeverva

Discussion

ログインするとコメントできます