В этом руководстве мы узнаем, как зарегистрировать нового пользователя с помощью «Войти через Apple» и зарегистрировать данные в Firebase Firestore. Давайте начнем!

Сложность: Начинающий | Легко | Нормальный | Испытывающий

Среда: Xcode 12 и UIKit (программно)

Предпосылки:

Настроить Firebase и войти в Apple

Прежде всего, вам нужно создать новый проект в Firebase и установить Firebase SDK в свой проект, следовать моему руководству и вернуться на эту страницу, если вы еще этого не сделали.

Теперь нам все еще нужно выполнить некоторые настройки как для Xcode, так и для Firebase, чтобы работать с Sign In With Apple.

Перейдите в Xcode, перейдите к своей основной цели ›Знак и возможности› «+ возможности» ›Выберите« Войти через Apple ».

Вернитесь в свою консоль Firebase и включите Войти через Apple.

Консоль Firebase ›Аутентификация› Пуск ›Метод входа› Apple ›активировать› Зарегистрироваться.

Кроме того, настройте проект для работы с Firebase Firestore, чтобы мы могли хранить наши пользовательские данные позже.

Cloud Firestore ›Создать базу данных› запустить в тестовом режиме ›Активировать.

После выполнения этих шагов запустите свое приложение, и вы должны быть там: ваше приложение запущено, Firebase подключен, аутентификация с Apple в Firebase Метод аутентификации включен и возможность входа с Apple активирована в Xcode.

Хорошо, мы закончили настройку Firebase и выполните вход с помощью Apple. А теперь давайте код!

Перейдите в файл ViewController и импортируйте следующую структуру вверху:

Объявите ASAuthorizationAppleIDButton прямо над методом viewDidLoad (выберите нужный стиль и тип):

Теперь давайте настроим нашу кнопку внизу экрана, скопируйте / вставьте этот код сразу после закрывающего графика viewDidLoad.

Также вызовите функцию setupappleButton внутри viewDidLoad, и вы увидите, что эта красивая кнопка появляется на экране 📱

Теперь мы готовы добавить действие к этой кнопке (этот код во многом основан на документации Firebase)!

Давайте продолжим, скопируйте / вставьте следующий код в файл ViewController:

Теперь давайте дадим действие startSignInWithAppleFlow, заменив текущую функцию на эту:

Теперь вы увидите предупреждение Xcode, потому что мы еще не соответствовали протоколам ASAuthorizationControllerDelegate и ASAuthorizationControllerPresentationContextProviding, скопируйте / вставьте код ниже после последнего графика ваш код в ViewController (это расширение).

Этот код позволяет нам подключиться к Apple Server, который вернет уникальный токен в Firebase, проверить, существует ли уже пользователь, а если нет, зарегистрируйте пользователя в нашей базе данных (Firebase Firestore) с помощью трех элементов: электронной почты, имя и идентификатор пользователя.

Запустите приложение и войдите в систему с помощью Apple!

После завершения процесса входа (лучше на реальном устройстве, симулятор часто не работает) вернитесь в консоль Firebase и вы увидите следующее:

В настоящее время Apple передает электронную почту приложениям только при первом входе пользователя в систему с помощью входа в систему Apple.

Мы сделали это! Мы успешно регистрируемся с помощью войти через Apple и регистрируем данные в Firestore с именем, адресом электронной почты и идентификатором пользователя ✔️

Если у вас есть какие-либо вопросы, оставьте мне комментарий и, если вы сочтете его полезным, поделитесь им с кем-то, кому это тоже может быть интересно! Если вы потеряете некоторые части, найдите полный код V iewController ниже 😉

Спасибо за внимание! Я всегда рад поболтать и поработать на [email protected]. Рассмотрите возможность подписки, чтобы получить неограниченный доступ к моим статьям и всему Medium через мою реферальную ссылку.