Vi que algunas personas encontraron este problema, pero ninguna de las respuestas me ayudó en realidad.
Entonces, estoy creando una aplicación en Unity (2020.1.11f1) y estoy usando Firebase para manejar el proceso de autenticación. La autenticación de correo electrónico/contraseña funciona, pero ahora que estoy tratando con la autenticación de Facebook, me encuentro con el famoso error:
Firebase.FirebaseException: la credencial de autenticación proporcionada tiene un formato incorrecto o ha caducado
Inicié sesión en mi aplicación en el desarrollador de Facebook y la conecté a Firebase. Verifiqué dos veces la ID de la aplicación y la ID secreta. Además, mi token es válido ya que estoy comprobando su validez. Además, sabe que viene de facebook.
Estoy usando el fragmento de código (procedente de la documentación oficial):
private void facebook_loginFirebase(string accessToken) { //Get firebase authenticator and credential to perform connection Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance; Firebase.Auth.Credential credential = Firebase.Auth.FacebookAuthProvider.GetCredential(accessToken); //Perform Connection auth.SignInWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCredentialAsync was canceled."); popup_manager.openErrorPopup("5010", "Task has been cancelled"); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception); popup_manager.openErrorPopup("5011", "An error happened: " + task.Exception); return; } Firebase.Auth.FirebaseUser newUser = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", newUser.DisplayName, newUser.UserId); popup_manager.openInformationPopup("Account created with userID: " + newUser.UserId); }); }Además, estoy usando Facebook SDK 9.0. Parece que ha cambiado un poco con respecto a las versiones anteriores y todos los tutoriales en Internet se basan en versiones anteriores. ¿Tienes más consejos para comprobar?
¡Gracias por adelantado! ¡Avísame si necesito darte más información!
Encontré el error con la ayuda de un amigo. Básicamente, vino de la aplicación creada en el desarrollador de Facebook. Cuando cree la aplicación, podrá elegir entre:
Mi juego era un juego para Android e iOS, así que seleccioné la segunda opción. El caso es que necesitaba la tercera opción porque mi juego no iba a salir en Facebook. Cuando seleccione la segunda opción, su token comenzará por GG y arrojará el error al usar SignInWithCredentialAsync().
Este enlace me ayudó: https://github.com/firebase/quickstart-unity/issues/826