Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

使用 Twitter 和 Unity 進行身份驗證

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

您可以通過將 Sign in with Twitter 集成到您的應用中,讓您的用戶使用他們的 Twitter 帳戶向 Firebase 進行身份驗證。

在你開始之前

在您可以使用Firebase 身份驗證之前,您需要:

  • 註冊您的 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 實時數據庫和雲存儲安全規則中,您可以從auth變量中獲取登錄用戶的唯一用戶 ID,並使用它來控制用戶可以訪問哪些數據。

您可以通過將身份驗證提供程序憑據鏈接到現有用戶帳戶來允許用戶使用多個身份驗證提供程序登錄您的應用程序。

要註銷用戶,請調用SignOut()

auth.SignOut();