Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

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

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

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

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

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

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

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

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

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

Доступ к классу Firebase.Auth.FirebaseAuth

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

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

  1. Следуйте инструкциям для входа в Twitter, чтобы получить токен доступа OAuth и секрет OAuth.
  2. После того, как пользователь успешно войдет в систему, замените токен доступа на учетные данные Firebase и выполните аутентификацию с помощью Firebase, используя учетные данные Firebase:
    Firebase.Auth.Credential credential =
        Firebase.Auth.TwitterAuthProvider.GetCredential(accessToken, secret);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCredentialAsync 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 в систему пользователя из переменной auth и использовать его для управления тем, к каким данным пользователь может получить доступ.

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

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

auth.SignOut();