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

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

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

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

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

  2. Если вы еще не подключили свое приложение к проекту Firebase, сделайте это из консоли Firebase .
  3. Включить анонимную авторизацию:
    1. В консоли Firebase откройте раздел Auth .
    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 .