Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Notas de la versión de Firebase Admin Java SDK

Para revisar las notas de la versión para la consola de Firebase y para otras plataformas de Firebase y SDK relacionados, consulte las Notas de la versión de Firebase .

Versión 6.15.0 - 23 de julio de 2020

  • El SDK de administrador ahora importa todas las dependencias de Google Cloud Platform a través de com.google.cloud:libraries-bom .

Autenticación

Versión 6.14.0 - 17 de junio de 2020

  • Versión actualizada de la dependencia de Cloud Firestore a 1.34.0.
  • Versión de dependencia de Cloud Storage actualizada a 1.108.0.
  • Se actualizaron otras dependencias del SDK. Las bibliotecas Netty, Google API Client, Google HTTP Client, Google API Common y JSON de las que depende el SDK se han actualizado a versiones más recientes.

Mensajería en la nube

  • Se FcmOptions en MulticastMessage . Gracias pavlospt por la contribución .
  • Se agregó soporte para el parámetro direct_boot_ok .

Versión 6.13.0 - 14 de mayo de 2020

Autenticación

  • Se getUsers() API getUsers() y deleteUsers() para recuperar y eliminar cuentas de usuario en masa.

Versión 6.12.2 - 11 de febrero de 2020

  • Las API de gestión de proyectos en la clase FirebaseProjectManagement ahora reintentan automáticamente las operaciones que fallan debido a errores HTTP elegibles para reintentar.

Autenticación

  • Las API de administración de usuarios en la clase FirebaseAuth ahora reintentan automáticamente las operaciones que fallan debido a errores HTTP elegibles para reintentar.

Versión 6.12.1 - 23 de enero de 2020

Mensajería en la nube

  • AndroidNotification clase AndroidNotification ahora formatea correctamente el campo event_time enviado al servicio Cloud Messaging.

Versión 6.12.0 - 18 de diciembre de 2019

  • Se corrigió un error en el análisis de cadenas de fecha durante el manejo de errores. Gracias sakebook por la contribución .

Cloud Firestore

  • Se actualizó la versión de dependencia de google-cloud-firestore firestore a 1.31.0, que proporciona soporte para consultas IN . Gracias achuinard por la contribución .

Mensajería en la nube

  • Añadido notificationCount parámetro para AndroidNotification clase. Gracias knocknarea por la contribución .
  • El SDK ahora maneja correctamente el código de error THIRD_PARTY_AUTH_ERROR devuelto por el servicio de back-end cuando envía notificaciones a iOS y objetivos web.

Versión 6.11.0 - 30 de octubre de 2019

  • Versión de dependencia de Cloud Firestore actualizada a 1.21.0.
  • Versión de dependencia de Cloud Storage actualizada a 1.91.0.

Mensajería en la nube

  • Se agregó un Builder para construir objetos de Notification .
  • Se agregó una serie de nuevos parámetros a la clase AndroidNotification que permiten una mayor personalización de las notificaciones que se dirigen a dispositivos Android.
  • El número de mensajes por lote aumentó a 500.

Versión 6.10.0 - 04 septiembre, 2019

Mensajería en la nube

  • Se agregó una nueva API WebpushFcmOptions para configurar las funciones proporcionadas por el SDK de FCM para Web. Gracias Kirmerzlikin por la contribución .
  • Se agregaron nuevas API para especificar una URL de imagen en las notificaciones.

Base de datos en tiempo real

  • Los desarrolladores ahora pueden probar las llamadas de la API de base de datos en tiempo real dirigiendo el tráfico del SDK al emulador RTDB. Establezca la variable de entorno FIREBASE_DATABASE_EMULATOR_HOST para especificar el punto final del emulador en host:port formato de host:port .

Versión 6.9.0 - 18 de julio de 2019

  • Versión actualizada del cliente Cloud Firestore a 1.9.0.
  • Versión de cliente de Cloud Storage actualizada a 1.79.0.
  • Se actualizó la versión del cliente API de Google a 1.30.1.
  • Se actualizó la versión de dependencia de Guava a 26.0-android.

Firebase Cloud Messaging

  • Se FcmOptions clases FcmOptions , AndroidFcmOptions y ApnsFcmOptions para especificar etiquetas de análisis para notificaciones FCM.
  • MulticastMessage.Builder API MulticastMessage.Builder ahora admite la especificación de tokens de registro del dispositivo como una Collection lugar de una List .

Versión 6.8.1 - 24 de abril de 2019

Firebase Cloud Messaging

  • El SDK ahora vuelve a intentar automáticamente las llamadas de FCM API que fallan debido a errores HTTP 500 y 503.

Base de datos en tiempo real

  • El SDK ahora genera excepciones con mensajes de error claros al serializar POJO con objetos numéricos no estándar.

Versión 6.8.0 - 14 de marzo de 2019

Firebase Cloud Messaging

  • Una nueva API sendMulticast() para enviar un mensaje a una lista de tokens de registro del dispositivo.
  • Una nueva API sendAll() para enviar una lista de mensajes como un solo lote.

Versión 6.7.0 - 9 de enero de 2019

  • Firestore instancias de Firestore inicializadas por el SDK ahora se limpian cuando se llama a FirebaseApp.delete() .

Autenticación

  • Se agregaron las API de generación de enlaces de acción de correo electrónico para crear enlaces para restablecer contraseña, verificación de correo electrónico e inicio de sesión de enlace de correo electrónico a través de generatePasswordResetLink() , generateEmailVerificationLink() y generateSignInWithEmailLink() . Consulte la documentación para obtener más detalles y ejemplos de código.

Mensajería en la nube

  • Aps clase Aps ahora admite la configuración de un sonido crítico. Se ha introducido una nueva clase CriticalSound para este propósito.
  • Se agregó un nuevo método setChannelId() a la API AndroidNotification.Builder para configurar el ID del canal de notificación de Android (nuevo en Android O).

Versión 6.6.0 - 28 de noviembre de 2018

  • Una nueva API de FirebaseProjectManagement para administrar aplicaciones en un proyecto de Firebase.
  • Nuevos listAndroidApps() y listIosApps() para enumerar las aplicaciones existentes en un proyecto.
  • Nuevos createAndroidApp() y createIosApp() para crear nuevas aplicaciones en un proyecto.
  • Nuevas API de AndroidApp e IosApp para actualizar aplicaciones individuales.

Autenticación

  • Las API de administración de usuarios en FirebaseAuth se han migrado al nuevo punto final REST de Identity Toolkit. Ahora se requiere una ID de proyecto para usar FirebaseAuth . Los desarrolladores que usen credenciales de cuenta de servicio o se implementen en tiempos de ejecución administrados de Google como App Engine no notarán una diferencia.

Mensajería en la nube

  • ApsAlert clase ApsAlert ahora admite la especificación de subtítulos Gracias chemidy por la contribución .
  • Se mejoró el manejo de errores al solicitar una respuesta de error más detallada del servicio de back-end FCM.

Versión 6.5.0 - 14 de septiembre de 2018

  • FirebaseOptions.Builder expone un nuevo método setFirestoreOptions() que se puede usar para configurar las instancias de Firestore inicializadas por el SDK.
  • Versión actualizada del cliente de Cloud Firestore a 0.61.0-beta.
  • Versión del cliente Cloud Storage actualizada a 1.43.0.

Versión 6.4.0 - 28 de agosto de 2018

Mensajería en la nube

  • El WebpushNotification tipo proporciona ahora un Builder API, y soportes arbitraria pares de valores clave en su carga útil.

Versión 6.3.0 - 17 de julio de 2018

  • El SDK de administrador ahora puede leer el ID del proyecto Firebase / Google Cloud Platform de las variables de entorno GCLOUD_PROJECT y GOOGLE_CLOUD_PROJECT .

Autenticación

  • El SDK de administrador ahora puede crear tokens personalizados sin inicializarse con las credenciales de la cuenta de servicio.
  • El SDK ahora proporciona un especificador de opción setServiceAccountId() , que se puede usar para configurar solo el correo electrónico del cliente de una cuenta de servicio.
  • Cuando se implementa en un entorno administrado por Google (por ejemplo, Google App Engine), el SDK puede detectar automáticamente una ID de cuenta de servicio sin ninguna configuración explícita.

Versión 6.2.0 - 31 de mayo de 2018

Autenticación

Versión 6.1.0 - 15 de mayo de 2018

Autenticación

  • En setCustomClaims() método setCustomClaims() incorrectamente nombrado. Los desarrolladores deberían usar el método setCustomUserClaims() .

Versión 6.0.0 - 8 de mayo de 2018

  • FirebaseAuth interfaces FirebaseAuth , FirebaseMessaging y FirebaseInstanceId ahora exponen un conjunto de métodos de bloqueo. Cada operación tiene versiones de bloqueo y asíncronas.
  • Se eliminó la interfaz obsoleta FirebaseCredential .
  • Se eliminó la interfaz de Task obsoleta junto con el paquete com.google.firebase.tasks .
  • Soporte eliminado para el tiempo de ejecución Java 7 de App Engine. Se recomienda a los desarrolladores que utilicen Admin SDK con Java 8 cuando implementen en App Engine.
  • Se eliminó la API FirebaseDatabase.setLogLevel() desuso y las utilidades de registro relacionadas. Los desarrolladores deben usar SLF4J para configurar el registro directamente.

    Para obtener más detalles sobre estos cambios importantes, consulte la Guía de migración de Admin SDK .

Versión 5.11.0 - 25 de abril de 2018

  • Se actualizó la versión de dependencia de Google Cloud Firestore a 0.45.0-beta.
  • Se actualizó la versión de dependencia de Google Cloud Storage a 1.27.0.
  • Se actualizó la versión de dependencia de Netty a 4.1.22.

Autenticación

Versión 5.10.0 - 17 de abril de 2018

Inicialización

  • Se setConnectTimeout() los setConnectTimeout() y setReadTimeout() a la clase FirebaseOptions.Builder . Estos métodos permiten configurar tiempos de espera para las solicitudes HTTP salientes realizadas por el SDK. Esta configuración afecta a todas las solicitudes, excepto las solicitudes realizadas a Firebase Realtime Database y Cloud Firestore.

Mensajería en la nube

  • Se agregó el método setMutableContent() a la clase Aps.Builder . Esto se puede usar para establecer la propiedad de mutable-content al enviar mensajes FCM a los objetivos APN.
  • Se agregó soporte para especificar campos clave-valor arbitrarios en la clase Aps.Builder .
  • Manejo de errores mejorado en la API de FirebaseMessaging .

Autenticación

  • La API de FirebaseAuth ahora usa el HttpTransport configurado a través de FirebaseOptions para obtener certificados de clave pública al verificar los tokens de ID. Gracias xbauquet por la contribución .

Versión 5.9.0 - 14 de febrero de 2018

Mensajería en la nube

  • Una nueva API de FirebaseMessaging para enviar mensajes de FCM y administrar suscripciones de temas.
  • Un nuevo método sendAsync() para enviar mensajes FCM.
  • Un nuevo método subscribeToTopicAsync() para suscribir una lista de tokens de registro de dispositivos a un tema de FCM.
  • Un nuevo método unsubscribeFromTopicAsync() para cancelar la suscripción de una lista de tokens de registro de dispositivo de un tema de FCM.

Autenticación

  • El método verifyIdTokenAsync() ahora tiene una sobrecarga que acepta un parámetro booleano checkRevoked . Cuando es true , se realiza una verificación adicional para ver si el token ha sido revocado.
  • Un nuevo revokeRefreshTokensAsync() para invalidar todos los tokens emitidos a un usuario.
  • La clase UserRecord introduce un nuevo getTokensValidAfterTimestamp() para devolver el tiempo antes del cual los tokens no son válidos.

Base de datos en tiempo real

  • Ahora se registran las excepciones generadas por los controladores de eventos de la base de datos.

Cloud Firestore

  • Se actualizó el cliente de Cloud Firestore a la última versión disponible.

Inicialización

  • El método FirebaseOptions.Builder.setStorageBucket() ahora genera una clara excepción cuando se invoca con una URL de depósito en lugar del nombre.
  • Se implementó una solución para un posible conflicto de versión de Guava que estaba causando una IllegalStateException (falla de precondición) en algunos entornos.

Versión 5.8.0 - 11 de enero de 2018

Inicialización

  • El método FirebaseApp.initializeApp() ahora proporciona una sobrecarga que no requiere ningún argumento. Esto inicializa una aplicación usando las Credenciales predeterminadas de la aplicación de Google y otras FirebaseOptions cargadas desde la variable de entorno FIREBASE_CONFIG .

Autenticación

  • Manejo mejorado de errores en las API de administración de usuarios en la clase FirebaseAuth . Estas operaciones ahora lanzan excepciones con códigos de error bien definidos.

Base de datos en tiempo real

  • El SDK ahora serializa valores dobles enteros grandes siempre que sea apropiado.

Versión 5.7.0 - 21 de diciembre de 2017

  • Una nueva API FirebaseInstanceId que facilita la eliminación de ID de instancia y datos de usuario asociados de los proyectos de Firebase.

Autenticación

  • Ya no se usa la dependencia org.json en las API de autenticación, lo que facilita el uso de la API en entornos con bibliotecas JSON en conflicto.

Versión 5.6.0 - 08 de diciembre de 2017

  • Se actualizó la versión de la dependencia común de la API de Google a la última (1.2.0).

Autenticación

  • Se agregó el método listUsersAsync() a la clase FirebaseAuth . Este método permite enumerar o iterar sobre todas las cuentas de usuario en un proyecto de Firebase.
  • Se agregó el método setCustomUserClaimsAsync() a la clase FirebaseAuth . Este método permite configurar notificaciones personalizadas en un usuario de Firebase. Se puede acceder a los reclamos personalizados a través del token de identificación de ese usuario.

Base de datos en tiempo real

  • Vuelva a implementar la capa de comunicación WebSocket del cliente Realtime Database utilizando Netty.

Versión 5.5.0 - 07 de noviembre de 2017

Base de datos en tiempo real

  • Aseguró la finalización elegante de los subprocesos de los trabajadores de la base de datos al llamar a FirebaseApp.delete() .

Versión 5.4.0 - 11 de octubre de 2017

  • Una nueva API ThreadManager que se puede usar para especificar el grupo de subprocesos y ThreadFactory que debe usar el SDK.
  • Todas las API que admiten operaciones asincrónicas ahora devuelven un ApiFuture . La antigua API de Task ha quedado en desuso. Para cada método x() que devuelve una Task , se ha introducido un nuevo método xAsync() que devuelve un ApiFuture .
  • El SDK ahora garantiza la terminación elegante de todos los subprocesos iniciados. En la mayoría de los entornos, el SDK utilizará demonios para todas las actividades en segundo plano. El desarrollador también puede iniciar una terminación elegante de subprocesos llamando a FirebaseApp.delete() .

Inicialización

Versión 5.3.1 - 13 de septiembre de 2017

Autenticación

  • Lanzando un error preciso y más detallado de verifyIdToken() en el caso de una excepción de bajo nivel.

Base de datos en tiempo real

  • Manejo y registro adecuados de las excepciones onComplete() por el evento onComplete() de los manejadores de transacciones.

Versión 5.3.0 - 14 de agosto de 2017

Autenticación

  • Se agregó el método getUserByPhoneNumber() a la interfaz FirebaseAuth . Este método permite recuperar información de perfil de usuario por un número de teléfono.
  • UpdateRequest tipos CreateRequest y UpdateRequest ahora proporcionan UpdateRequest para especificar un número de teléfono, que puede usarse para crear usuarios con un campo de número de teléfono y / o actualizar el número de teléfono asociado con un usuario.
  • Se agregó el método getPhoneNumber() a UserRecord , que expone el número de teléfono asociado con una cuenta de usuario.
  • Se agregó el método getPhoneNumber() a UserInfo , que expone el número de teléfono asociado con una cuenta de usuario por un proveedor de identidad vinculado.

Base de datos en tiempo real

  • En desuso el método FirebaseDatabase.setLogLevel() . Use SLF4J para configurar el registro.
  • Registro de un error detallado cuando el cliente de la base de datos no puede autenticarse con los servidores backbase de Firebase.

Versión 5.2.0 - 14 de junio de 2017

  • Nuevos métodos de fábrica en la clase FirebaseCredentials que aceptan argumentos HttpTransport y JsonFactory . Esta configuración se utiliza cuando las credenciales realizan llamadas HTTP para obtener tokens de acceso OAuth2.
  • Nuevos setHttpTransport() y setJsonFactory() en la clase FirebaseOptions . Todos los servicios del SDK utilizan esta configuración, excepto FirebaseDatabase .

Versión 5.1.0 - 07 de junio de 2017

Autenticación

  • Una nueva API de administración de usuarios que permite aprovisionar y administrar usuarios de Firebase desde aplicaciones Java. Esta API agrega los getUser() , getUserByEmail() , createUser() , updateUser() y deleteUser() a la interfaz FirebaseAuth .

Versión 5.0.1 - 01 de junio de 2017

Base de datos en tiempo real

  • Se corrigió una fuga de hilo de API de base de datos que hacía que el SDK fuera inestable al ejecutarse en el entorno de Google App Engine

Versión 5.0.0 - 17 de mayo de 2017

Inicialización

  • Los métodos de fábrica en la clase FirebaseCredentials ahora pueden arrojar IOExceptions , proporcionando una semántica rápida a la vez que facilitan el manejo de errores más simple.
  • El setServiceAccount() obsoleto setServiceAccount() se ha eliminado de la clase FirebaseOptions.Builder a favor del método setCredential() .
  • Intentar inicializar el SDK sin establecer una credencial ahora resulta en una excepción.
  • La interfaz FirebaseCredential ahora devuelve un nuevo tipo GoogleOAuthAccessToken , que encapsula tanto la cadena de token como su tiempo de caducidad.

Versión 4.1.7 - 20 de abril de 2017

  • Presentamos un nuevo método FirebaseApp.delete() , que se puede usar para cerrar correctamente las instancias de la aplicación. Todas las invocaciones de aplicaciones después de una llamada a delete() arrojarán excepciones. Las instancias de aplicaciones eliminadas también se pueden reinicializar con el mismo nombre si es necesario.

  • Dependencias de SDK actualizadas. Las bibliotecas Guava, Google API Client y JSON de las que depende el SDK se han actualizado a versiones más recientes.

Versión 4.1.6 - 04 de abril de 2017

Base de datos en tiempo real

  • Se actualizó el SDK para seleccionar la implementación correcta del grupo de subprocesos cuando se ejecuta en una JVM normal con bibliotecas de App Engine en el classpath .

Versión 4.1.5 - 28 de marzo de 2017

Base de datos en tiempo real

  • Se corrigió la versión de SDK no válida constante en la clase FirebaseDatabase que se lanzó en v4.1.4.

Versión 4.1.4 - 28 de marzo de 2017

Autenticación

  • Se actualizó el SDK para actualizar periódicamente el token de acceso OAuth utilizado internamente por FirebaseApp . Esto reduce la cantidad de fallas de autenticación encontradas en tiempo de ejecución por varios componentes del SDK (por ejemplo, Base de datos en tiempo real) a casi cero. Esta característica está activa por defecto cuando se ejecuta en entornos Java típicos, o en el entorno de Google App Engine con soporte de hilos de fondo.

Versión 4.1.3 - 7 de marzo de 2017

Base de datos en tiempo real

  • Base de datos en tiempo real actualizada para intercambiar correctamente el token de ID utilizado para autenticar el websocket subyacente cuando se genera un nuevo token de ID. La conexión websocket todavía se desconecta y se vuelve a conectar cada hora cuando caduca un token de ID, a menos que llame manualmente a getAccessToken en la FirebaseCredential utilizada para autenticar el SDK. En una versión futura, el SDK actualizará proactivamente los tokens de identificación automáticamente antes de que caduquen.

Versión 4.1.2 - 14 de febrero de 2017

Inicialización

  • Se actualizó initalizeApp() para leer sincrónicamente un InputStream para evitar problemas al cerrar la secuencia después de inicializar el SDK.
  • Se mejoraron los mensajes de error confusos al inicializar el SDK con un InputStream null o con formato incorrecto.

Versión 4.1.1 - 1 de febrero de 2017

Autenticación

Versión 4.1.0 - 24 de enero de 2017

Inicialización

Autenticación

  • El método verifyIdToken() se rompe en esta versión y genera una excepción debido a una dependencia incorrecta. Esto se solucionó en la versión 4.1.1 .

Versión 4.0.4 - 17 de enero de 2017

  • Se solucionó el problema que causaba que los subprocesos se terminaran en Google App Engine después de 24 horas, haciendo que el SDK no respondiera.
  • Se corrigieron los problemas que causaban que la ejecución de tareas asincrónicas fallara en instancias de Google App Engine escaladas automáticamente.

Autenticación

  • Se mejoraron los mensajes de error y se agregó soporte de App Engine para el método verifyIdToken() .

Base de datos en tiempo real

  • Se corrigió una condición de carrera que podría ocurrir cuando se agregan nuevas escrituras mientras se cierra la conexión.

Versión 4.0.3 - 6 de diciembre de 2016

Inicialización

  • Se solucionó un problema que causaba que se setDatabaseAuthVariableOverride() una entrada null al método setDatabaseAuthVariableOverride() , lo que hacía que la aplicación todavía tuviera acceso de administrador completo. Ahora, pasar este valor tiene el comportamiento esperado: la aplicación tiene acceso no autenticado a la Base de datos en tiempo real y se comporta como si ningún usuario hubiera iniciado sesión en la aplicación.

Base de datos en tiempo real

  • El uso del método updateChildren() ahora solo cancela las transacciones que se incluyen directamente en las rutas actualizadas (no las transacciones en rutas adyacentes). Por ejemplo, una actualización en /move para un nodo secundario walk cancelará las transacciones en / , /move , y /move/walk y en cualquier nodo secundario debajo de /move/walk . Pero ya no cancelará transacciones en nodos hermanos, como /move/run .

Versión 4.0.2 - 15 de noviembre de 2016

  • Esta actualización restaura la compatibilidad de Java 7 para el SDK de Java de administrador.

Versión 4.0.1 - 8 de noviembre de 2016

  • Se solucionó un problema con una dependencia faltante en el 4.0.0 JAR que causaba que la API de la base de datos no funcionara.
  • Esta versión se compiló para Java 8 y no es compatible con Java 7. Esto se corrigió en la versión 4.0.2 .

Versión 4.0.0 - 7 de noviembre de 2016

  • El SDK de Java Admin (disponible en Maven como firebase-admin ) reemplaza el paquete Maven firebase-server-sdk preexistente, que ahora está en desuso. Consulta Agregar el SDK de Firebase Admin a tu servidor para comenzar.
  • A esta versión le falta una dependencia que hace que la API de la base de datos no funcione. Esto se solucionó en la versión 4.0.1 .
  • Esta versión se compiló para Java 8 y no es compatible con Java 7. Esto se corrigió en la versión 4.0.2 .

Autenticación

  • El método createCustomToken() ahora es asíncrono, devolviendo una Task<String> lugar de una String .