В этом руководстве мы узнаем, как зарегистрировать нового пользователя с помощью «Войти через Apple» и зарегистрировать данные в Firebase Firestore. Давайте начнем!
Сложность: Начинающий | Легко | Нормальный | Испытывающий
Среда: Xcode 12 и UIKit (программно)
Предпосылки:
- Проект работает на iOS 13 или новее
- Установлены SDK Firebase Auth и Firebase Firestore
Настроить 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 через мою реферальную ссылку.