Войдите в систему с помощью 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 Результат.