Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Аутентификация в Firebase с использованием пользовательской системы аутентификации и Unity.

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Вы можете интегрировать Firebase Authentication с пользовательской системой аутентификации, изменив свой сервер аутентификации для создания настраиваемых подписанных токенов, когда пользователь успешно входит в систему. Ваше приложение получает этот токен и использует его для аутентификации в Firebase.

Прежде чем вы начнете

  1. Прежде чем вы сможете использовать Firebase Authentication , вам необходимо:

    • Зарегистрируйте свой проект Unity в своем проекте Firebase.
    • Добавьте SDK Firebase Unity (в частности, FirebaseAuth.unitypackage ) в свой проект Unity.

    Подробные инструкции по этим первоначальным шагам настройки см. в разделе Добавление Firebase в ваш проект Unity .

  2. Получите ключи сервера вашего проекта:
    1. Перейдите на страницу сервисных аккаунтов в настройках вашего проекта.
    2. Нажмите « Создать новый закрытый ключ » в нижней части раздела Firebase Admin SDK на странице « Учетные записи служб ».
    3. Пара открытого и закрытого ключей новой учетной записи службы автоматически сохраняется на вашем компьютере. Скопируйте этот файл на свой сервер аутентификации.

Авторизоваться с помощью Firebase

Класс FirebaseAuth является шлюзом для всех вызовов API. Он доступен через FirebaseAuth.DefaultInstance .
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Вызовите Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync с токеном с вашего сервера аутентификации.

  1. Когда пользователи входят в ваше приложение, отправьте их учетные данные для входа (например, имя пользователя и пароль) на ваш сервер проверки подлинности. Ваш сервер проверяет учетные данные и возвращает пользовательский токен , если они действительны.
  2. Получив пользовательский токен с сервера аутентификации, передайте его в Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync для входа пользователя:
    auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCustomTokenAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCustomTokenAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

Следующие шаги

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

  • В своих приложениях вы можете получить основную информацию профиля пользователя из объекта Firebase.Auth.FirebaseUser :

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • В правилах безопасности базы данных Firebase Realtime и облачного хранилища вы можете получить уникальный идентификатор пользователя, вошедшего в систему, из переменной auth и использовать его для управления тем, к каким данным пользователь может получить доступ.

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

Чтобы выйти из системы, вызовите SignOut() :

auth.SignOut();