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

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

Прежде чем начать

  1. Прежде чем использовать Firebase Authentication , необходимо добавить SDK Firebase Unity (а именно, FirebaseAuth.unitypackage ) в ваш проект Unity.

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

  2. Если вы еще не подключили свое приложение к проекту Firebase, сделайте это через консоль Firebase .
  3. Включить анонимную аутентификацию:
    1. В консоли Firebase откройте раздел «Аутентификация» .
    2. На странице «Способы входа» включите анонимный способ входа.
    3. Необязательно : Если вы обновили свой проект до Firebase Authentication with Identity Platform , вы можете включить автоматическую очистку. При включении этой настройки анонимные учетные записи старше 30 дней будут автоматически удаляться. В проектах с включенной автоматической очисткой анонимная аутентификация больше не будет учитываться в лимитах использования или платежных квотах. См. раздел «Автоматическая очистка» .

Аутентификация с помощью Firebase анонимно

Когда пользователь, не вышедший из системы, использует функцию приложения, требующую аутентификации в Firebase, выполните следующие действия для его анонимного входа в систему:

Класс FirebaseAuth является шлюзом для всех вызовов API. Доступ к нему осуществляется через FirebaseAuth.DefaultInstance .
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
1. Вызовите Firebase.Auth.FirebaseAuth.SignInAnonymouslyAsync .
auth.SignInAnonymouslyAsync().ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInAnonymouslyAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInAnonymouslyAsync encountered an error: " + task.Exception);
    return;
  }

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

Преобразовать анонимный аккаунт в постоянный.

Когда анонимный пользователь регистрируется в вашем приложении, вы можете разрешить ему продолжить работу с новой учетной записью — например, вы можете захотеть сделать товары, добавленные пользователем в корзину до регистрации, доступными в корзине покупок новой учетной записи. Для этого выполните следующие шаги:

  1. Когда пользователь регистрируется, завершите процесс авторизации для поставщика аутентификации пользователя, включая вызов одного из методов Firebase.Auth.FirebaseAuth.SignInAndRetrieveDataWithCredentialAsync . Например, получите токен Google ID пользователя, токен доступа Facebook или адрес электронной почты и пароль.
  2. Получите объект Firebase.Auth.Credential для нового поставщика аутентификации:

  3. Передайте объект Firebase.Auth.Credential методу LinkWithCredentialAsync пользователя, выполнившего вход в систему:

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

Автоматическая очистка

Если вы обновили свой проект до Firebase Authentication with Identity Platform , вы можете включить автоматическую очистку в консоли Firebase . Включение этой функции позволяет Firebase автоматически удалять анонимные учетные записи старше 30 дней. В проектах с включенной автоматической очисткой анонимная аутентификация не будет учитываться в лимитах использования или платежных квотах.

  • Любые анонимные учетные записи, созданные после включения автоматической очистки, могут быть автоматически удалены в любое время по истечении 30 дней с момента создания.
  • Существующие анонимные учетные записи будут автоматически удалены через 30 дней после включения автоматической очистки.
  • Если отключить автоматическую очистку, все анонимные учетные записи, запланированные к удалению, останутся запланированными к удалению.
  • Если вы "обновите" анонимный аккаунт, связав его с любым способом входа в систему, аккаунт не будет удален автоматически.

Если вы хотите узнать, сколько пользователей будет затронуто до включения этой функции, и вы обновили свой проект до Firebase Authentication with Identity Platform , вы можете отфильтровать данные по параметру is_anon в Cloud Logging .

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

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