Хорошо, это сложно, но не из-за Firebase.
Как правило, если вы хотите использовать федеративный вход в систему, например Facebook , Google , Twitter , вам потребуется использовать встроенный SDK пользовательского интерфейса. для какой платформы вы используете. После успешного входа в систему с помощью одной из этих служб вы создадите учетные данные с token
, возвращаемым одной из этих служб.
После того, как вы войдете в систему с этими учетными данными, служба аутентификации Firebase свяжет любые данные учетной записи с этим федеративным входом. Если вы ранее использовали анонимный логин, то аккаунт необходимо обновить. Если вы уже вошли в систему с другими учетными данными (адрес электронной почты, номер телефона, альтернативный федеративный вход в систему), вам потребуется выполнить некоторую логику, чтобы проверить необходимость слияния или переключения.
Firebase Auth может пережить Федеративный токен. Например, токен входа в Facebook истекает или отзывается, ваш бэкэнд проверки подлинности Firebase может оставаться в системе. Напротив, ваш токен Facebook может не завершиться, но ваша аутентификация Firebase могла быть завершена. Вам нужно будет управлять этими состояниями.
Вот пример. Мы хотим использовать Facebook Login в качестве нашего поставщика федеративного входа. Мы связываем Facebook Login SDK для нашей платформы, как описано в Документах для разработчиков Facebook .
Когда мы хотим запросить учетные данные для входа в Facebook, мы используем FBSDKLoginManager .loginwithReadPermissions () для запуска потока входа. Обычно это включает в себя запуск приложения Facebook для подтверждения разрешений для вашего приложения или веб-сайта (убедитесь, что вы используете правильные ссылки, как описано в документации Facebook).
В конце концов, вход в систему будет успешным или неудачным.
Если это удастся, Facebook выдаст вам токен, который вы можете получить с [FBSDKAccessToken currentAccessToken].tokenString
. Это то, что вы отправите на firebase::auth::FacebookAuthProvider::GetCredential
Все это ASync и выполняется в отдельных потоках. Вы должны использовать параллельную очередь для направления этих событий в ваш основной поток.
Можно использовать свой собственный сервер и форму регистрации, в этом случае вы создадите свой собственный пользовательский интерфейс в игре, а затем сделаете безопасные вызовы сервера на свой сервер. Есть поток для получения текстового сообщения для проверки пользователя, а не то, что я бы сделал для игры.