🔖
[Flutter✖️Firebase]匿名アカウントからGoogleアカウント連携
初めに
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ライブラリを入れる
アカウント連携ボタンを作る
好きなように作ってくれ
呼び出す関数作成
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フォローしてくれよな!
Discussion