Google 致力于为黑人社区推动种族平等。查看具体举措

Начните с аутентификации Firebase в Unity

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

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

Перед тем, как можно использовать Firebase аутентификации , вам необходимо:

  • Зарегистрируйте свой проект Unity и настройте его для использования Firebase.

    • Если ваш проект Unity уже использует Firebase, значит, он уже зарегистрирован и настроен для Firebase.

    • Если у Вас нет проекта Unity, вы можете загрузить пример приложения .

  • Добавьте Firebase Unity SDK ( в частности, FirebaseAuth.unitypackage ) для вашего проекта Unity.

Обратите внимание , что добавление Firebase в свой проект Unity включает в себя задачу , как в Firebase консоли и в своем открытом проекте Unity (например, загрузки Firebase конфигурационных файлов из консоли, а затем переместить их в свой проект Unity).

Зарегистрируйте новых пользователей

Создайте форму, которая позволит новым пользователям регистрироваться в вашей игре, используя свой адрес электронной почты и пароль. Когда пользователь заполняет форму, подтвердите адрес электронной почты и пароль , предоставленный пользователем, а затем передать их CreateUserWithEmailAndPasswordAsync методе:

auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  // Firebase user has been created.
  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Войти существующих пользователей

Создайте форму, позволяющую существующим пользователям входить в систему, используя свой адрес электронной почты и пароль. Когда пользователь завершает форму, вызовите SignInWithEmailAndPasswordAsync метод:

auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Установите обработчик событий изменения состояния аутентификации и получите данные пользователя

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

Регистрация обработчика событий с помощью FirebaseAuth объекта StateChanged поля. Когда пользователь успешно входит в систему, вы можете получить информацию о пользователе в обработчике событий.

void InitializeFirebase() {
  auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
  auth.StateChanged += AuthStateChanged;
  AuthStateChanged(this, null);
}

void AuthStateChanged(object sender, System.EventArgs eventArgs) {
  if (auth.CurrentUser != user) {
    bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;
    if (!signedIn && user != null) {
      DebugLog("Signed out " + user.UserId);
    }
    user = auth.CurrentUser;
    if (signedIn) {
      DebugLog("Signed in " + user.UserId);
      displayName = user.DisplayName ?? "";
      emailAddress = user.Email ?? "";
      photoUrl = user.PhotoUrl ?? "";
    }
  }
}

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

Узнайте, как добавить поддержку для других поставщиков удостоверений и анонимных гостевых учетных записей: