Skip to content

Instantly share code, notes, and snippets.

@riscait
Created April 7, 2020 23:20
Show Gist options
  • Save riscait/aeb3d0078cb9949e4986bb5ed708a6b7 to your computer and use it in GitHub Desktop.
Save riscait/aeb3d0078cb9949e4986bb5ed708a6b7 to your computer and use it in GitHub Desktop.
/// Sign in with Appleが押された
Future onPressedAppleButton(BuildContext context) async {
// 証明書をリクエストして取得
AuthCredentialWithApple credentialWithApple; // フルネームを使用しない場合は `AuthCredential`でOK
try {
credentialWithApple = await requestAppleIdCredential(); // この後実装
} on Exception catch (e) {
// エラーハンドリング
}
if (credentialWithApple == null) {
return; // null == キャンセルなので何もしない
}
// Appleサインインを実行
final result = await signInWithAppleIdCredential(credentialWithApple); // この後実装
if (result == null) {
// エラーハンドリング
}
// 新規ユーザーか既存ユーザーかの分岐
if (result.additionalUserInfo.isNewUser) {
// 新規ユーザーの場合の処理
/* フルネームを使用する場合に追加する処理ここから */
final user = result.user; // サインアップしたユーザー
final updateUser = UserUpdateInfo() // ユーザー情報更新用クラス
// 更新したい名前を好みの形式で設定
..displayName =
'${credentialWithApple.familyName} ${credentialWithApple.givenName}';
await user.updateProfile(updateUser); // ユーザープロフィールを更新実行
/* フルネームを使用する場合に追加する処理ここまで */
} else {
// 既存ユーザーの場合の処理
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment