Google 致力于为黑人社区推动种族平等。查看具体举措

使用 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();