Autenticar com o Firebase usando um sistema personalizado de autenticação e o Unity
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
É possível integrar o Firebase Authentication a um sistema de autenticação personalizado
modificando o servidor de autenticação para produzir tokens assinados personalizados quando
um usuário faz login. Seu app recebe e usa esse token para se autenticar com o Firebase.
Clique em Gerar uma nova chave privada na parte inferior da seção SDK Admin do Firebase da página Contas de serviço.
O novo par de chaves pública/privada da conta de serviço é salvo automaticamente no seu computador. Copie esse arquivo para seu servidor de autenticação.
Autenticar no Firebase
A classe FirebaseAuth é o gateway para todas as chamadas de API.
Ela pode ser acessada por meio de FirebaseAuth.DefaultInstance.
Chame Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync com o token do servidor de
autenticação.
Quando os usuários fizerem login no seu app, envie as credenciais de login, como
nome de usuário e senha, ao servidor de autenticação. As credenciais são verificadas e, se forem válidas, um token personalizado é retornado.
Depois de receber o token personalizado do servidor de autenticação, transmita-o para Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync e faça o login do usuário.
auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task=>{if(task.IsCanceled){Debug.LogError("SignInWithCustomTokenAsync was canceled.");return;}if(task.IsFaulted){Debug.LogError("SignInWithCustomTokenAsync encountered an error: "+task.Exception);return;}Firebase.Auth.AuthResultresult=task.Result;Debug.LogFormat("User signed in successfully: {0} ({1})",result.User.DisplayName,result.User.UserId);});
Próximas etapas
Depois que um usuário faz login pela primeira vez, uma nova conta de usuário é criada e
vinculada às credenciais, que podem ser o número do telefone,
o nome de usuário e a senha ou as informações do provedor de autenticação. Essa nova
conta é armazenada como parte do projeto do Firebase e pode ser usada para identificar
um usuário em todos os apps do projeto, seja qual for o método de login utilizado.
Nos seus apps, use o objeto
Firebase.Auth.FirebaseUser para receber as informações básicas de perfil do usuário.
Firebase.Auth.FirebaseUseruser=auth.CurrentUser;if(user!=null){stringname=user.DisplayName;stringemail=user.Email;System.Uriphoto_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.stringuid=user.UserId;}
Nas
Regras de segurançaFirebase Realtime Database e Cloud Storage, você pode
acessar o ID exclusivo do usuário conectado pela variável auth
e usar essas informações para controlar
quais dados um usuário pode acessar.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-04 UTC."],[],[],null,["You can integrate Firebase Authentication with a custom authentication system by\nmodifying your authentication server to produce custom signed tokens when a user\nsuccessfully signs in. Your app receives this token and uses it to authenticate\nwith Firebase.\n\nBefore you begin\n\n1. Before you can use\n [Firebase Authentication](/docs/reference/unity/namespace/firebase/auth),\n you need to:\n\n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\n - Register your Unity project with your Firebase project.\n - Add the [Firebase Unity SDK](/download/unity) (specifically, `FirebaseAuth.unitypackage`) to your Unity project.\n\n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\n **Find detailed instructions for these initial setup steps in\n [Add Firebase to your Unity\n project](/docs/unity/setup#set_up_environment).**\n2. Get your project's server keys:\n 1. Go to the [Service Accounts](https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk) page in your project's settings.\n 2. Click *Generate New Private Key* at the bottom of the *Firebase Admin SDK* section of the *Service Accounts* page.\n 3. The new service account's public/private key pair is automatically saved on your computer. Copy this file to your authentication server.\n\nAuthenticate with Firebase The `FirebaseAuth` class is the gateway for all API calls. It is accessible through [FirebaseAuth.DefaultInstance](/docs/reference/unity/class/firebase/auth/firebase-auth#defaultinstance). \n\n```c#\nFirebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;\n```\n\nCall `Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync` with the token from\nyour authentication server.\n\n1. When users sign in to your app, send their sign-in credentials (for example, their username and password) to your authentication server. Your server checks the credentials and returns a [custom token](/docs/auth/admin/create-custom-tokens) if they are valid.\n2. After you receive the custom token from your authentication server, pass it to `Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync` to sign in the user: \n\n ```c#\n auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task =\u003e {\n if (task.IsCanceled) {\n Debug.LogError(\"SignInWithCustomTokenAsync was canceled.\");\n return;\n }\n if (task.IsFaulted) {\n Debug.LogError(\"SignInWithCustomTokenAsync encountered an error: \" + task.Exception);\n return;\n }\n\n Firebase.Auth.AuthResult result = task.Result;\n Debug.LogFormat(\"User signed in successfully: {0} ({1})\",\n result.User.DisplayName, result.User.UserId);\n });\n ```\n\nNext steps\n\nAfter a user signs in for the first time, a new user account is created and\nlinked to the credentials---that is, the user name and password, phone\nnumber, or auth provider information---the user signed in with. This new\naccount is stored as part of your Firebase project, and can be used to identify\na user across every app in your project, regardless of how the user signs in.\n\n- In your apps, you can get the user's basic profile information from the\n [`Firebase.Auth.FirebaseUser`](/docs/reference/unity/class/firebase/auth/firebase-user) object:\n\n ```c#\n Firebase.Auth.FirebaseUser user = auth.CurrentUser;\n if (user != null) {\n string name = user.DisplayName;\n string email = user.Email;\n System.Uri photo_url = user.PhotoUrl;\n // The user's Id, unique to the Firebase project.\n // Do NOT use this value to authenticate with your backend server, if you\n // have one; use User.TokenAsync() instead.\n string uid = user.UserId;\n }\n ```\n- In your Firebase Realtime Database and Cloud Storage\n [Security Rules](/docs/database/security/user-security), you can\n get the signed-in user's unique user ID from the `auth` variable,\n and use it to control what data a user can access.\n\nYou can allow users to sign in to your app using multiple authentication\nproviders by [linking auth provider credentials to an\nexisting user account.](/docs/auth/unity/account-linking)\n\nTo sign out a user, call [`SignOut()`](/docs/reference/unity/class/firebase/auth/firebase-auth#signout): \n\n```c#\nauth.SignOut();\n```"]]