Google стремится к продвижению расового равенства для чернокожего населения. Смотри как.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Аутентифицировать Использование Twitter на Android

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

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

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

  1. Если вы еще не сделали, добавить Firebase в свой Android проекта .

  2. В Firebase консоли откройте раздел Auth.
  3. На вкладке Вход в метод, включите поставщика Twitter.
  4. Добавить ключ API и API тайне от разработчиков консоли, поставщика к конфигурации поставщика:
    1. Зарегистрируйте свое приложение в качестве приложения для разработчиков на Twitter и получить OAuth ключ API и API секрет вашего приложения.
    2. Убедитесь , что ваш Firebase OAuth перенаправлением URI (например , my-app-12345.firebaseapp.com/__/auth/handler ) устанавливается в качестве авторизации обратного вызова URL в странице настроек вашего приложения на вашей конфигурации Twitter приложения .
  5. Нажмите кнопку Сохранить.
  6. В вашем проектном уровне build.gradle файл, не забудьте включить репозиторий Maven Google, как в вашем buildscript и allprojects секций.

  7. Добавить зависимость для библиотеки Firebase аутентификации Android для вашего модуля (приложение уровня) Gradle файл (обычно app/build.gradle ):

     implementation 'com.google.firebase:firebase-auth:19.3.2'
     
  8. Если вы еще не указаны ваше приложение SHA-1 отпечаток пальца, сделайте это с страницы Настройки консоли Firebase. Обратитесь к аутентификации своему клиента Подробных сведений о том , как получить свое приложение SHA-1 отпечаток палец.

Ручка входа в потоке с Firebase SDK

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

Для обработки входа в потоке с Firebase Android SDK, выполните следующие действия:

  1. Построить экземпляр OAuthProvider с использованием его Builder с провайдером ID Twitter.com

     OAuthProvider.Builder provider = OAuthProvider.newBuilder("twitter.com");
     
  2. Необязательно: Укажите дополнительные пользовательские параметры OAuth , которые вы хотите отправить с запросом OAuth.

     // Target specific email with login hint.
    provider.addCustomParameter("lang", "fr");
     

    Для параметров Twitter опоров см документации Twitter OAuth . Обратите внимание , что вы не можете передать Firebase-необходимые параметры с setCustomParameters() . Эти параметры являются client_id, response_type, redirect_uri, состояние, объем и response_mode.

  3. Аутентифицировать с Firebase с помощью объекта провайдера OAuth. Обратите внимание , что в отличие от других операций FirebaseAuth, это взять под контроль своего UI, выскакивает настраиваемую вкладку Chrome . В результате, не ссылаются на вашу активность в OnSuccessListener и OnFailureListener , что Вы придаете как они будут немедленно отсоединить , когда начинается работа пользовательского интерфейса.

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

    Для того, чтобы проверить, есть ли в ожидании результата, вызовите getPendingAuthResult :

     Task<AuthResult> pendingResultTask = firebaseAuth.getPendingAuthResult();
    if (pendingResultTask != null) {
      // There's something already here! Finish the sign-in for your user.
      pendingResultTask
          .addOnSuccessListener(
              new OnSuccessListener<AuthResult>() {
                @Override
                public void onSuccess(AuthResult authResult) {
                  // User is signed in.
                  // IdP data available in
                  // authResult.getAdditionalUserInfo().getProfile().
                  // The OAuth access token can also be retrieved:
                  // authResult.getCredential().getAccessToken().
                  // The OAuth secret can be retrieved by calling:
                  // authResult.getCredential().getSecret().
                }
              })
          .addOnFailureListener(
              new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                  // Handle failure.
                }
              });
    } else {
      // There's no pending result so you need to start the sign-in flow.
      // See below.
    }
     

    Для того, чтобы начать знак в потоке, вызовите startActivityForSignInWithProvider :

     firebaseAuth
        .startActivityForSignInWithProvider(/* activity= */ this, provider.build())
        .addOnSuccessListener(
            new OnSuccessListener<AuthResult>() {
              @Override
              public void onSuccess(AuthResult authResult) {
                // User is signed in.
                // IdP data available in
                // authResult.getAdditionalUserInfo().getProfile().
                // The OAuth access token can also be retrieved:
                // authResult.getCredential().getAccessToken().
                // The OAuth secret can be retrieved by calling:
                // authResult.getCredential().getSecret().
              }
            })
        .addOnFailureListener(
            new OnFailureListener() {
              @Override
              public void onFailure(@NonNull Exception e) {
                // Handle failure.
              }
            });
     

    После успешного завершения, доступ OAuth маркер , связанный с провайдером может быть получен из OAuthCredential объекта возвращается.

    Используя маркер доступа OAuth, вы можете вызвать API Twitter .

    Например, чтобы получить основную информацию о профиле, вы можете позвонить в REST API, передавая маркер доступа в Authorization заголовка:

  4. Хотя приведенные выше примеры сосредоточиться на знак в потоках, у вас также есть возможность связывать поставщик Twitter существующего пользователю с помощью startActivityForLinkWithProvider . Например, вы можете связать несколько поставщиков к тому же самому пользователю, позволяя им войти в любом.

     // The user is already signed-in.
    FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
    
    firebaseUser
        .startActivityForLinkWithProvider(/* activity= */ this, provider.build())
        .addOnSuccessListener(
            new OnSuccessListener<AuthResult>() {
              @Override
              public void onSuccess(AuthResult authResult) {
                // Twitter credential is linked to the current user.
                // IdP data available in
                // authResult.getAdditionalUserInfo().getProfile().
                // The OAuth access token can also be retrieved:
                // authResult.getCredential().getAccessToken().
                // The OAuth secret can be retrieved by calling:
                // authResult.getCredential().getSecret().
              }
            })
        .addOnFailureListener(
            new OnFailureListener() {
              @Override
              public void onFailure(@NonNull Exception e) {
                // Handle failure.
              }
            });
    
     
  5. Та же модель может быть использована с startActivityForReauthenticateWithProvider , которые могут быть использованы для получения свежих учетных данных для чувствительных операций, требующих последней регистрацию.

     // The user is already signed-in.
    FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
    
    firebaseUser
        .startActivityForReauthenticateWithProvider(/* activity= */ this, provider.build())
        .addOnSuccessListener(
            new OnSuccessListener<AuthResult>() {
              @Override
              public void onSuccess(AuthResult authResult) {
                // User is re-authenticated with fresh tokens and
                // should be able to perform sensitive operations
                // like account deletion and email or password
                // update.
              }
            })
        .addOnFailureListener(
            new OnFailureListener() {
              @Override
              public void onFailure(@NonNull Exception e) {
                // Handle failure.
              }
            });
     

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

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

  • В приложениях, вы можете получить основную информацию о профиле пользователя из FirebaseUser объекта. См Управление пользователей .

  • В вашей базе данных в реальном времени и Firebase Cloud Storage правил безопасности , вы можете получить подписанный в уникальном пользователя идентификатор пользователя из auth переменной и использовать его , чтобы контролировать , какие данные пользователь заходит может.

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

Чтобы выйти пользователь, вызовите signOut :

Ява

FirebaseAuth.getInstance().signOut();

Котлин + KTX

Firebase.auth.signOut()