Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

823
Visualizações
Cómo acceder al token de autenticación en Unity con GameCenter Firebase Authentication

Me gustaría agregar la autenticación de GameCenter con Firebase a mi juego Unity. Pero en la documentación no está la parte de GameCenter (solo la de Play Games). Ya logré la "parte de la Unidad":

 public static void GameCenterAuth() { GameCenterPlatform.ShowDefaultAchievementCompletionBanner(true); Social.localUser.Authenticate (GameCenterProcessAuth); } static void GameCenterProcessAuth(bool success) { if (success) { Social.ReportProgress("Achievement01", 100, (result) => { Debug.Log(result ? "Reported achievement" : "Failed to report achievement"); }); } else { Debug.Log ("Failed to authenticate"); } }

Pero pierde el vínculo con Firebase. Para esto necesito obtener el token de acceso de GameCenter pero como el doc no existe, no se como lograrlo.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Con suerte, no hay muchos agujeros en la documentación de Unity, pero cuando encuentra uno, a menudo puede encontrar un código de muestra en los inicios rápidos de Unity (ya que también se usan para validar los cambios en el SDK de Unity).

Desde UIHandler.cs en el inicio rápido de autenticación:

 public Task SignInWithGameCenterAsync() { var credentialTask = Firebase.Auth.GameCenterAuthProvider.GetCredentialAsync(); var continueTask = credentialTask.ContinueWithOnMainThread(task => { if(!task.IsCompleted) return null; if(task.Exception != null) Debug.Log("GC Credential Task - Exception: " + task.Exception.Message); var credential = task.Result; var loginTask = auth.SignInWithCredentialAsync(credential); return loginTask.ContinueWithOnMainThread(HandleSignInWithUser); }); return continueTask; }

Lo extraño de GameCenter es que no administra la credencial directamente, sino que la solicita desde GameCenter ( Aquí está PlayGames en comparación, que tiene que almacenar en caché el resultado de Authenticate manualmente ).

Entonces, en su código, iría al bloque if (success) y agregaría:

 GameCenterAuthProvider.GetCredentialAsync().ContinueWith(task => { // I used ContinueWith // be careful, I'm on a background thread here. // If this is a problem, use ContinueWithOnMainThread if (task.Exception != null) { FirebaseAuth.GetInstance.SignInWithCredentialAsync(task.Result).ContinueWithOnMainThread(task => { // I used ContinueWithOnMainThread // You're on the Unity main thread here, so you can add or change scene objects // If you're comfortable with threading, you can change this to ContinueWith }); } });
over 4 years ago · Santiago Trujillo Relatório

0

https://firebase.google.com/docs/auth/ios/game-center Esto podría responder a su pregunta. Es posible que deba implementar esta característica en XCode cuando exporte el proyecto desde la unidad

over 4 years ago · Santiago Trujillo Relatório

0

Para completar la respuesta de Patrick, encontré el repositorio de GitHub de machahamster donde usan Game Center Auth con Firebase en Unity. Si puede ayudar a alguien: https://github.com/google/mechahamster/blob/b5ab9762cc95a2a36156d0cbd1dc08fb767c4080/Assets/Hamster/Scripts/Menus/GameCenterSignIn.cs#L45

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda