Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

824
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda