Как добавить Google Sign In в приложение flutter?


Войдите в систему с помощью google.

Используйте пакет google_sign_in на pub.dev с последней версией.
Создайте проект Firebase для регистрации приложения в Google. Создайте 2 приложения для Android и IOS, как показано на рисунке ниже:

Добавьте 2 файла google_services.json и GoogleService-info.plist в ваш проект:

1 Настройка для Android.

Вам необходимо включить API OAuth, используя менеджер API Google Cloud Platform. После этого вы сможете использовать API Google, например People API.

Откройте файл your_app > android > build.gradle и добавьте это объявление в блок dependencies:

Это выглядит следующим образом:

 dependencies {
        classpath 'com.android.tools.build:gradle:7.1.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.13'
        compile 'com.google.apis:google-api-services-people:v1-rev20210903-1.32.1'
    }
Вход в полноэкранный режим Выход из полноэкранного режима

После настройки вам нужно сделать еще один шаг, чтобы удалить Exception. Перейдите в созданный вами проект Firebase, откройте Обзор проекта, Настройки проекта, добавьте копирующее поле Public-facing name.

Затем откройте вкладку OAuth consent screen в вашем Google Cloud, заполните все необходимые поля в консоли, чтобы избежать APIException.

2 Настройка для IOS

  • Когда вы создаете приложение для IOS, убедитесь, что скачали файл GoogleService-Info.plist в шаге 1.
  • Откройте Xcode, затем щелкните правой кнопкой мыши на директории Runner и выберите Add Files to «Runner».

  • Выберите GoogleService-Info.plist из файлового менеджера.
  • Появится диалоговое окно с предложением выбрать цели, выберите цель Runner.
  • Затем добавьте приведенные ниже атрибуты CFBundleURLTypes в файл [my_project]/ios/Runner/Info.plist.
<!-- Put me in the [my_project]/ios/Runner/Info.plist file -->
<!-- Google Sign-in Section -->
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <!-- TODO Replace this value: -->
            <!-- Copied from GoogleService-Info.plist key REVERSED_CLIENT_ID -->
            <string>REVERSED_CLIENT_ID</string>
        </array>
    </dict>
</array>
<!-- End of the Google Sign-in Section -->
Войти в полноэкранный режим Выйти из полноэкранного режима

3 Используйте плагин.

Добавьте следующий импорт в ваш код Dart:

import 'package:google_sign_in/google_sign_in.dart';

Инициализируйте GoogleSignIn с нужными вам диапазонами:

GoogleSignIn _googleSignIn = GoogleSignIn(
  scopes: [
    'email',
    'https://www.googleapis.com/auth/contacts.readonly',
  ],
);
Войти в полноэкранный режим Выйти из полноэкранного режима

Теперь вы можете использовать класс GoogleSignIn для аутентификации в коде Dart, например.

// Sign in with Google
Future<void> _handleSignIn() async {
    try {
      await _googleSignIn.signIn();
    } catch (error) {
      if (kDebugMode) {
        print(error);
      }
    }
  }

// Sign out with Google
Future<void> _handleSignOut() => _googleSignIn.disconnect();
Войти в полноэкранный режим Выйти из полноэкранного режима

Найдите пример проводки в примере приложения Google sign-in.

Дополнительное требование для iOS

Обратите внимание, что согласно https://developer.apple.com/sign-in-with-apple/get-started, начиная с 30 июня 2020 года, приложения, использующие сервисы входа, должны также предлагать опцию «Войти с Apple» при отправке в Apple App Store.

4 Результат.

Оцените статью
devanswers.ru
Добавить комментарий