Вы можете использовать Firebase Authentication для создания и использования временных анонимных аккаунтов для аутентификации в Firebase. Эти временные анонимные аккаунты можно использовать, чтобы предоставить пользователям, которые ещё не зарегистрировались в вашем приложении, доступ к данным, защищенным правилами безопасности. Если анонимный пользователь решит зарегистрироваться в вашем приложении, вы можете связать его учетные данные с анонимным аккаунтом, чтобы он мог продолжать работать со своими защищенными данными в будущих сеансах.
Подготовка
-
Чтобы использовать Firebase Authentication, вам нужно добавить в проект Unity Firebase Unity SDK (а именно
FirebaseAuth.unitypackage).Подробные инструкции по первоначальной настройке смотрите в статье Как добавить Firebase в свой проект Unity.
- Если вы ещё не подключили приложение к проекту Firebase, сделайте это в консоли Firebase.
-
Включите анонимную аутентификацию:
- В Firebaseконсоли администратора выберите Безопасность > Аутентификация.
- На вкладке Sign-in method (Способ входа) включите поставщика для анонимного входа.
- Необязательно. Если вы обновили проект до версии Firebase Authentication with Identity Platform, можно включить автоматическую очистку. Если вы включите этот параметр, анонимные аккаунты старше 30 дней будут удаляться автоматически. В проектах с включенной автоматической очисткой анонимная аутентификация больше не будет учитываться в лимитах на использование и квотах на оплату. Подробнее об автоматической очистке…
Анонимная аутентификация с помощью Firebase
Если пользователь, не вошедший в аккаунт, использует функцию приложения, для которой требуется аутентификация с помощью Firebase, выполните следующие действия, чтобы анонимно войти в аккаунт пользователя:
КлассFirebaseAuth – это шлюз для всех вызовов API.
Он доступен через FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
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); });
Как преобразовать анонимный аккаунт в постоянный
Когда анонимный пользователь регистрируется в вашем приложении, вы можете разрешить ему продолжить работу с новым аккаунтом. Например, вы можете добавить в корзину нового аккаунта товары, которые пользователь добавил в корзину до регистрации. Для этого выполните следующие действия:
- Когда пользователь регистрируется, выполните вход через поставщика услуг аутентификации пользователя, но не вызывайте один из методов
Firebase.Auth.FirebaseAuth.SignInAndRetrieveDataWithCredentialAsync. Например, получить токен идентификатора Google, токен доступа Facebook или адрес электронной почты и пароль. Получите
Firebase.Auth.Credentialдля нового поставщика услуг аутентификации:Передайте объект
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.