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

Notas de la versión de Firebase C ++

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 .

Para instalar este SDK, consulte Agregar Firebase a su proyecto C ++ .

Versión 6.15.1 - 29 de junio de 2020

 -  Fixed an issue that warns about Future handle not released
  properly.
 

Cloud Firestore

  • todos los miembros de la enumeración de Error ahora tienen el prefijo kError ; por ejemplo, Error::kUnavailable ahora es Error::kErrorUnavailable , que es más consistente con otros SDK de Firebase C ++.
  • Firestore ahora se puede compilar en Windows, incluso en presencia de min y max macros definidas en <windows.h> .

Versión 6.15.0 - 2 de junio de 2020

  • Se corrigió una afirmación al crear una aplicación personalizada cuando no hay una aplicación predeterminada.

Cloud Firestore

  • Se eliminaron *LastResult funciones de la API pública.
  • Descartó el prefijo From de las funciones estáticas en FieldValue
  • CollectionReference::id ahora devuelve una referencia constante.
  • Se corrigió el error absl time_internal linker en Windows.
  • Cambió la firma de la devolución de llamada pasada a Firestore::RunTransaction para pasar los parámetros por referencia mutable, no por puntero.

Versión 6.14.1 - 18 de mayo de 2020

Autenticación

  • Se agregó el campo SignInResult.UserInfo.updated_credential. En iOS, los errores kAuthErrorCredentialAlreadyInUse al vincular con Apple pueden contener una credencial actualizada actualizada para usar al iniciar sesión en el usuario vinculado a Apple.

Versión 6.14.0 - 23 de abril de 2020

Cloud Firestore

  • Firestore.LoggingEnabled se reemplaza por Firestore.LogLevel para Firestore.LogLevel coherencia con otras API de Firebase Unity. Se ha eliminado el captador de esta propiedad.

Versión 6.12.0 - 5 de marzo de 2020

  • Se agregó soporte experimental para Cloud Firestore SDK, disponible en todas las plataformas compatibles. Tenga en cuenta que la API está sujeta a cambios.

Versión 6.11.0 - 20 de febrero de 2020

  • (iOS) La versión mínima admitida de Xcode es 10.3.
  • Al crear una aplicación, el project_id de la aplicación predeterminada ahora se usa si no se proporciona una.

Base de datos en tiempo real

  • (Escritorio) Se solucionó un problema con la base de datos que se conectaba al servidor después de revocar el token de autenticación.

Versión 6.10.0 - 30 de enero de 2020

  • (iOS) Actualizó CMakeLists.txt para vincular bibliotecas estáticas almacenadas en libs / ios / universal para objetivos iOS.

Autenticación

  • Revertió la API de un controlador de devolución de llamada experimental FederatedAuthHandler.
  • (iOS) Se agregó una nueva versión de OAuthProvider::GetCredential , que toma un parámetro nonce como lo requiere Apple Sign-in.

Versión 6.9.0 - 27 de diciembre de 2019

Autenticación

  • Se agregó Auth::SignInWithProvider , User::LinkWithProvider y User::ReauthenticateWithProvider , lo que permite User::ReauthenticateWithProvider sesión con proveedores de autenticación externos.
  • Se kProviderId cadenas constantes de kProviderId a las clases de proveedor de autenticación.
  • (iOS): soporte agregado para vincular las credenciales de inicio de sesión de Apple.

FCM

  • (Android): se agregó la opción para habilitar o deshabilitar la exportación de métricas de entrega de mensajes a BigQuery. Actualmente, esta funcionalidad solo está disponible en Android. Se proporcionan stubs en iOS para compatibilidad multiplataforma

Versión 6.8.0 - 3 de diciembre de 2019

  • (Linux) Se agregó la verificación del compilador / stdlib para garantizar que tanto el ejecutable del desarrollador como la biblioteca Firebase se compilen con el mismo compilador y stdlib.
  • Se solucionó un problema por el cual la generación de recursos de google-services.json fallaba si se usaba python3 para ejecutar el script de generación de recursos.

AdMob

  • (Android): se corrigió una operación potencialmente no segura para subprocesos en la destrucción de BannerViews.

Versión 6.7.0 - 13 de noviembre de 2019

  • Se agregó noexcepto para mover constructores para garantizar que STL use mover siempre que sea posible.
  • (Windows) Se corrigió el error donde el valor literal 0 llamaba al constructor de cadenas para la clase Variant.
  • Se agregó una pequeña optimización de cadena para Variant .
  • Número reducido de nuevas / eliminar para la Variant si se copia el mismo tipo.
  • Asegúrese de que el orden de clasificación del mapa para la variante sea consistente.

Analítica

  • (iOS) Se corrigió el comportamiento analytics::GetAnalyticsInstanceId() de analytics::GetAnalyticsInstanceId() después de llamar a analytics::ResetAnalyticsData() .

Base de datos en tiempo real

  • Se solucionó un problema que causaba que las marcas de tiempo no se rellenaran correctamente al usar DatabaseReference :: UpdateChildren ().
  • (Escritorio) Se solucionó un problema que impedía que los eventos de escucha se activaran después de llamar a DatabaseReference :: UpdateChildren ().
  • (Escritorio) Las funciones que toman parámetros const char* ahora fallarán correctamente si se pasa un puntero nulo.
  • (Escritorio) Se solucionó un problema que causaba. DatabaseReference::RunTransaction() fallará debido a un datastale cuando la ubicación almacenó previamente un vector con más de 10 elementos o un mapa con claves enteras.
  • (Escritorio) Se solucionó un problema que podía provocar que se pasara una instantánea incorrecta a los oyentes en circunstancias específicas.
  • (Escritorio): se corrigió el problema de pedidos de los niños cuando se usa OrderBy en tipos dobles o int64 con valores grandes.

Almacenamiento

  • (iOS / Android) Se solucionó un problema por el cual Storage::GetReferenceFromUrl devolvería una StorageReference no StorageReference .
  • (Escritorio) Cambió url() para devolver la cadena vacía si la instancia de Storage se creó con la URL predeterminada (nula).

Versión 6.6.1 - 2 de octubre de 2019

  • Se corrigió una posible referencia indefinida en Future :: OnCompletion.

Versión 6.6.0 - 25 de septiembre de 2019

Autenticación

  • (Android) Se corrigió la afirmación cuando no se usa la instancia de aplicación predeterminada
  • (Escritorio) Se corrigió que no se cargaba la lista de proveedores de los datos de usuario en caché.

Base de datos en tiempo real

  • (Escritorio) Las consultas en ubicaciones de la base de datos con reglas de consulta ahora funcionan correctamente, en lugar de devolver siempre "Permiso denegado".
  • (Escritorio) Se corrigió la conversión de mapa a vector al disparar eventos que tienen mapas que contienen claves enteramente enteras.

Configuración remota

  • (Android) Se corrigió un error al pasar una variante de tipo Blob a SetDefaults () en Android.

Versión 6.5.0 - 10 de septiembre de 2019

Autenticación

  • (Linux) Registro de errores mejorado si libsecret (requerido para la persistencia de inicio de sesión) no está instalado en Linux.

Base de datos en tiempo real

  • La base de datos ahora admite la configuración del nivel de registro independientemente del registrador de nivel del sistema.

Versión 6.4.0 - 26 de agosto de 2019

  • Se solucionó un problema que hacía que Futures borrara sus datos incluso si todavía se mantenía una referencia.

Autenticación

  • Se solucionó un problema con la información de usuario actualizada que no se conservaba.

Base de datos en tiempo real

  • (Escritorio) Se corrigió un bloqueo al guardar un ServerTimestamp durante una transacción.

Versión 6.3.0 - 14 de agosto de 2019

  • (iOS / Android) Se corrigió un error que permite crear instancias personalizadas de firebase :: App después de reiniciar la aplicación.

Autenticación

  • (Escritorio) Se modificó el comportamiento de destrucción. En lugar de esperar a que finalicen todas las operaciones asíncronas, ahora Auth cancelará todas las operaciones asíncronas y se cerrará. Para las devoluciones de llamada que ya se están ejecutando, esto protegerá contra los casos en que las instancias de autenticación ya no existan.
  • (iOS) Se corrigió una excepción en firebase :: auth :: VerifyPhoneNumber.
  • (iOS) Detuvo a Auth de la destrucción si queda algún futuro local dentro del alcance.

Base de datos en tiempo real

  • (Escritorio) Se solucionó un problema que podía causar un bloqueo al actualizar el descendiente de una ubicación con un oyente conectado.

Versión 6.2.2 - 26 de julio de 2019

Autenticación

  • (Escritorio) Después de cargar datos de usuario persistentes, asegúrese de que el token no haya caducado.

Base de datos en tiempo real

  • (Escritorio) Se corrigió el uso de un token de autenticación caducado después de cargarlo desde el almacenamiento persistente.
  • (Desktop) Fixed DatabaseReference :: RunTransaction () enviando datos no válidos al servidor que causa el mensaje de error "Error en el mensaje entrante" y se congela.

funciones

  • (Escritorio) Se corrigió el uso de un token de autenticación caducado después de cargarlo desde el almacenamiento persistente.

Almacenamiento

  • (Escritorio) Se corrigió el uso de un token de autenticación caducado después de cargarlo desde el almacenamiento persistente.

Versión 6.2.0 - 2 de julio de 2019

ID de instancia

  • (Android) Se corrigió un bloqueo al destruir objetos InstanceID.
  • Se agregó soporte para dominios personalizados.

Base de datos en tiempo real

  • Se agregó una forma de configurar la verbosidad de registro de las instancias de Realtime Database.

Versión 6.1.0 - 6 de junio de 2019

Autenticación

  • Las credenciales del usuario ahora persistirán entre sesiones. Consulte la documentación para más información.
  • Como parte del cambio anterior, si llama a current_user () inmediatamente después de crear la instancia de Auth, se bloqueará hasta que el estado del usuario guardado termine de cargarse.
  • Se solucionó un problema por el cual la Base de datos / Funciones / Almacenamiento podría no usar el último token de autenticación inmediatamente después del inicio de sesión.
  • Se solucionó un problema por el cual un código de error podía ser reportado incorrectamente en Android.

Base de datos en tiempo real

  • (Escritorio) Se solucionó un problema que podía causar un bloqueo durante el apagado.
  • (iOS) Se corrigió una condición de carrera que podría causar un bloqueo al limpiar los oyentes de la base de datos en iOS.
  • (iOS) Se solucionó un problema por el cual los valores largos (64 bits) podían escribirse incorrectamente en la base de datos (truncados a 32 bits).

funciones

  • Cambie la advertencia de aserción a registro cuando la aplicación se elimine antes de que se elimine la instancia de Cloud Functions.

FCM

  • Se agregó channel_id a las notificaciones de mensajería.

Versión 6.0.0 - 7 de mayo de 2019

Autenticación

  • Se corrigió una condición de carrera que actualizaba al usuario actual.

FCM

  • (iOS / Android) Solucione un problema por el que Suscribirse y Anular suscripción nunca regresaban si estaba configurado para no recibir un token de registro.

Invita

  • Se eliminó la biblioteca de Firebase Invites, ya que ya no es compatible.

Configuración remota

  • Se eliminaron las funciones que utilizan espacios de nombres de configuración, que quedaron en desuso en una versión anterior.

Analítica

  • SetMinimumSessionDuration en desuso.

AdMob

  • (Android) Para evitar una dependencia incompatible, AdMob requiere temporalmente una dependencia adicional en com.google.android.gms: play-services-measure-sdk-api: 16.5.0

Versión 5.7.0 - 19 de abril de 2019

Como esta versión de Firebase C ++ SDK es la versión final para admitir Firebase Invites, permanecerá disponible para descargar aquí .

Configuración remota

  • Los espacios de nombres de configuración ahora están en desuso. Deberá cambiar a métodos que usen el espacio de nombres predeterminado.

AdMob

  • (Android) Para evitar una dependencia incompatible, AdMob requiere temporalmente una dependencia adicional en com.google.android.gms: play-services-measure-sdk-api: 16.4.0

Versión 5.6.1 - 5 de abril de 2019

  • (iOS) Actualizado al último SDK de iOS para corregir un bloqueo en firebase::App Creación de la firebase::App causada por una condición de carrera. El bloqueo podría ocurrir al acceder a la propiedad [FIRApp firebaseUserAgent] de la FIRApp de iOS.

Versión 5.6.0 - 18 de marzo de 2019

  • Firebase C ++ ahora es de código abierto .
  • Se firebase::App un bloqueo al eliminar firebase::App antes de eliminar otros subsistemas de Firebase.

Autenticación

  • (iOS) Se agregó la autenticación de Game Center.

Base de datos en tiempo real

  • (Escritorio) Se modificó el funcionamiento de los valores del servidor en caché para estar más en línea con las implementaciones móviles.
  • (Escritorio) Ahora se admiten transacciones simultáneas.
  • (Escritorio) Ahora se admite el Timestamp ServerValue especial.
  • (Escritorio) KeepSynchronized ahora es compatible.

Versión 5.5.0 - 19 de febrero de 2019

  • (Android) Se agregó un archivo gradle al SDK que se encarga de agregar dependencias de Android Firebase a sus aplicaciones Firebase C ++. Vea las muestras de Firebase C ++ para ver ejemplos de uso.

Invita

  • Invitaciones está en desuso. Consulte https://firebase.google.com/docs/invites para obtener más detalles.

Versión 5.4.4 - 18 de enero de 2019

AdMob

  • (iOS) Se solucionó un problema con la cadena de bloques de anuncios de video recompensado fuera de alcance.

Funciones en la nube

  • (Android) Se solucionó un problema con el manejo de errores.

Versión 5.4.3 - 30 de noviembre de 2018

Almacenamiento

  • (iOS): se solucionó un problema al descargar archivos con GetBytes .

Versión 5.4.2 - 15 de noviembre de 2018

Autenticación

  • (Android): se eliminó un error irrelevante sobre la clase Java FirebaseAuthWebException.

Versión 5.4.0 - 19 de octubre de 2018

  • (Android): se corrigió el error de generación de enlaces cortos con "error 8".

Base de datos en tiempo real

  • (Escritorio) El SDK de escritorio de base de datos en tiempo real utiliza REST para acceder a su base de datos. Debido a esto, debe declarar los índices que utiliza con Query :: OrderByChild () en el escritorio o sus escuchas fallarán.

Versión 5.3.1 - 3 de octubre de 2018

Invita

  • (Android) Se corrigió una excepción cuando se usa la opción de código de Versión mínima de Android en Android.

Versión 5.3.0 - 20 de septiembre de 2018

  • (iOS) La versión mínima admitida de Xcode es 9.4.1.

Base de datos en tiempo real

  • (Escritorio) Problemas ChildListener en ChildListener .
  • (Escritorio) Se corrigió el bloqueo que podía ocurrir si la base de datos se eliminaba mientras una operación asincrónica aún estaba en progreso.

funciones

  • (Android) Se solucionó un problema cuando una función devuelve una matriz.

Versión 5.2.1 - 16 de agosto de 2018

Autenticación

  • Se corrigió una condición de carrera que devolvía el futuro incorrecto cuando llamaste al mismo método dos veces seguidas.

Base de datos en tiempo real

  • Se corrigió una condición de carrera que devolvía el futuro incorrecto cuando llamaste al mismo método dos veces seguidas.
  • (Escritorio) Soporte fijo para ChildListener cuando se usa con Query::EqualTo() , Query::StartAt() , Query::EndAt() , Query::LimitToFirst() y Query::LimitToLast() .
  • Se corrigió un bloqueo en el operador de asignación de copia de referencia / consulta de base de datos y el constructor de copia.

Versión 5.2.0 - 20 de julio de 2018

  • (Android) Se corrigió una referencia nula en el verificador de disponibilidad de Google Play Services.

Autenticación

  • (Android) Se User::UpdatePhoneNumberCredential() un bloqueo en User::UpdatePhoneNumberCredential() .

Base de datos en tiempo real

  • Se agregó una versión de GetInstance() que permite pasar la URL de la base de datos para usar.

funciones

  • Se agregó una forma de especificar en qué región ejecutar la función.

FCM

  • Cambió Subscribe() y Unsubscribe() para devolver un futuro.

Versión 5.1.1 - 27 de junio de 2018

  • Solo versiones de dependencia de Android e iOS actualizadas

Versión 5.1.0 - 22 de junio de 2018

Funciones en la nube

  • Se agregó soporte para Cloud Functions en iOS, Android y escritorio.

Analítica

  • Se agregó ResetAnalyticsData() para borrar todos los datos analíticos de una aplicación desde el dispositivo.
  • Se agregó GetAppInstanceId() que permite a los desarrolladores recuperar el ID de instancia de análisis de la aplicación actual.

Autenticación

  • Vincular una credencial con un proveedor que ya se ha vinculado ahora produce un error.
  • (iOS) Se User::LinkAndRetrieveDataWithCredential() bloqueos en User::LinkAndRetrieveDataWithCredential() y User::ReauthenticateAndRetrieveData() .
  • (iOS) Se corrigió la URL de la foto que nunca devuelve un valor en iOS.
  • (Android) Se UpdateUserProfile() configuración de la URL de la foto de perfil con UpdateUserProfile() .

Base de datos en tiempo real

  • Se agregó soporte para ServerValues ​​en los métodos SetPriority() .

Versión 5.0.0 - 5 de junio de 2018

  • (Android / iOS) Los nombres de las bibliotecas tienen el prefijo "firebase_", por ejemplo, libapp.a ahora es libfirebase_app.a. Esto los alinea con el esquema de nomenclatura utilizado en el escritorio y los marcos de trabajo de iOS.
  • (Android) Se mejoró el manejo de errores cuando el dispositivo no tiene espacio.
  • Se eliminaron los métodos de acceso obsoletos de Future.

AdMob

  • Se eliminaron los métodos de acceso obsoletos de BannerView e InterstitialAd.

Autenticación

  • Se eliminaron los accesos obsoletos de Auth, Credential, User y UserInfoInterface, incluido User :: refresh_token ().

Base de datos en tiempo real

  • Se eliminaron los accesos obsoletos de DatabaseReference, Query, DataSnapshot y MutableData.
  • Se agregó un campo a los enlaces dinámicos recibidos que describen la fuerza del partido.

FCM

  • Se agregó una estructura de opciones de inicialización opcional. Esto se puede usar para suprimir el mensaje en iOS que solicita permiso para recibir notificaciones al inicio. El permiso se puede solicitar manualmente usando la función firebase :: messaging :: RequestPermission ().

Invita

  • Se agregó OnInviteReceived a la clase base Listener que incluye la fuerza de la coincidencia en la invitación recibida como una enumeración. Función anterior en desuso que la recibió como valor booleano.

Almacenamiento

  • Se eliminaron los accesos obsoletos de StorageReference.
  • Metadatos eliminados :: download_url () y Metadatos :: download_urls (). Utilice StorageReference :: GetDownloadUrl () en su lugar.

Versión 4.5.1 - 16 de abril de 2018

Autenticación

  • (Escritorio) Se agregó soporte para acceder a los metadatos del usuario.

Base de datos en tiempo real

  • (Escritorio) Se corrigió un error para que la creación de instancias de bases de datos con URL no válidas devuelva nullptr.
  • (Escritorio) Se solucionó un problema por el cual se podían pasar valores incorrectos a OnChildAdded.

FCM

  • Se agregaron los métodos SetAutoTokenRegistrationOnInitEnabled () e IsAutoTokenRegistrationOnInitEnabled () para habilitar o deshabilitar la generación automática de tokens.

Configuración remota

  • Se corrigió un error que causaba un informe incorrecto de éxito o fracaso durante un Fetch ().

Versión 4.5.0 - 19 de marzo de 2018

  • Las implementaciones Stub (de escritorio) de autenticación, base de datos en tiempo real, configuración remota y almacenamiento se han reemplazado por implementaciones funcionales de flujo de trabajo de escritorio en Windows, OS X y Linux.

AdMob

  • Los anuncios de Native Express se han descontinuado, por lo que NativeExpressAdView se ha marcado como obsoleto y se eliminará en una versión futura.

Autenticación

Base de datos en tiempo real

  • La implementación de Stub (escritorio) se ha reemplazado por una implementación de flujo de trabajo de escritorio funcional en Windows, OS X y Linux.
  • (Escritorio) Cuando se utiliza Realtime Database en el escritorio, solo se puede ejecutar una Transacción en un subárbol dado al mismo tiempo.
  • (Escritorio) Cuando se usa Realtime Database en el escritorio, la persistencia de datos no está disponible.

Configuración remota

Almacenamiento

  • La implementación de Stub (escritorio) se ha reemplazado por una implementación de flujo de trabajo de escritorio funcional en Windows, OS X y Linux.
  • Se agregó hash MD5 a los metadatos.
  • Se corrigió un bloqueo al eliminar oyentes y otras instancias de objetos.
  • El controlador ahora se puede usar desde cualquier subproceso.
  • (iOS) Se corrigió el tipo de contenido incorrecto al cargar.

Versión 4.4.3 - 5 de marzo de 2018

  • (iOS) Se eliminaron los símbolos no resueltos en la biblioteca de aplicaciones que podrían causar errores al forzar la resolución.

Versión 4.4.2 - 23 de febrero de 2018

  • (Windows) Actualizó todas las bibliotecas estáticas para admitir diferentes bibliotecas de tiempo de ejecución de C y, en consecuencia, actualizó la estructura de directorios del paquete.
  • (Linux) Se corrigieron problemas de enlace con todas las bibliotecas de código auxiliar de C ++.
  • (iOS) Ahora obtiene la ID de invitación cuando se usan enlaces universales.
  • (iOS) Se corrigió el bloqueo al fallar la finalización del enlace dinámico
  • (iOS) Se solucionó un problema en el que algunos errores no se informaban correctamente.

Invita

  • Se corrigió SendInvite que nunca se completaba en la implementación del código auxiliar.

Configuración remota

  • Configuración remota (iOS) Se solucionó un problema en el que algunos errores no se informaban correctamente.

Almacenamiento

  • Metadata fija :: content_language que devuelve los datos incorrectos.
  • (iOS) Los formatos de rutas de referencia ahora son consistentes con otras plataformas.
  • (iOS) Se solucionó un problema por el cual intentar subir a una ruta inexistente no completaba el futuro.
  • (iOS) Se corrigió un bloqueo cuando fallaba una descarga.

Versión 4.4.1 - 26 de enero de 2018

Base de datos en tiempo real

  • SetPersistenceEnabled ahora establece la persistencia habilitada.

ID de instancia

  • (iOS) GetToken ya no falla sin un certificado APNS y ya no obliga a registrarse para recibir notificaciones.

Versión 4.4.0 - 3 de enero de 2018

ID de instancia

  • Biblioteca de ID de instancia agregada.

Versión 4.3.0 - 30 de noviembre de 2017

Autenticación

  • Se agregó soporte para acceder a los metadatos del usuario.

Configuración remota

  • (Android) Se remote_config::ValueSource conversion.

Versión 4.2.0 - 2 de octubre de 2017

Analítica

  • Se corrigió un error que impedía que se borraran la identificación del usuario y las propiedades del usuario.

Autenticación

  • Las operaciones fallidas ahora devuelven códigos de error más específicos.
  • (iOS) La autenticación del teléfono ya no requiere notificaciones push. Cuando las notificaciones push no están disponibles, se utiliza la verificación reCAPTCHA.

Base de datos en tiempo real

  • (Android) Se MutableData::children_count() .

FCM

  • Los mensajes enviados a los usuarios ahora pueden contener un enlace URL.
  • (Android) Se corrigió un error que impedía establecer el campo de ID de mensaje.

Versión 4.1.0 - 23 de agosto de 2017

  • Se agregó soporte std::function a Future::OnCompletion , para permitir el uso de lambdas C ++ 11 con capturas.
  • Los futuros ahora se invalidan cuando se destruye su API Firebase subyacente.
  • Actualizado a iOS 4.1.0 SDK y Android 11.2.0 SDK .

AdMob

  • (iOS) Se corrigió un bloqueo si se elimina un BannerView mientras aún estaba pendiente una llamada a Destroy() .

Base de datos en tiempo real

  • Se agregó un puntero de contexto a DatabaseReference::RunTransaction , así como compatibilidad con std::function para permitir el uso de C ++ 11 lambdas con capturas.
  • DataSnapshot , DatabaseReference , Query y otros objetos se invalidan cuando se destruye su instancia de Database .

FCM

  • Se agregó PollableListener para facilitar el sondeo de mensajes en un ciclo de actualización.
  • (Android) Se corrigió un error por el cual no se configuraba message_type en la estructura del mensaje.
  • (iOS) Se corrigió una condición de carrera si se recibe un mensaje antes de que se inicialice FCM.
  • (iOS) Se corrigió un error que detectaba si la notificación se abría si la aplicación se ejecutaba en segundo plano.

Configuración remota

  • Al enumerar las claves, la lista ahora incluye claves con valores predeterminados establecidos, incluso si no estaban presentes en la configuración obtenida.

Almacenamiento

  • StorageReference objetos StorageReference se invalidan cuando se destruye su instancia de Storage.

Versión 4.0.3 - 1 de agosto de 2017

  • (iOS) Se solucionó un problema que provocaba que las opciones personalizadas no se aplicaran a las instancias de firebase :: App.
  • (iOS) Se corrigió un error que causaba que las búsquedas de implementación de métodos fallaran cuando otros SDK de iOS cambian el nombre de los selectores de métodos sofisticados.
  • (Android) Se corrigió la finalización futura si falla la creación de enlaces cortos.

FCM

  • (iOS) Se corrigió el manejo de mensajes cuando los mensajes se reciben a través del canal directo al backend FCM (es decir, no a través de APNS).

Versión 4.0.2 - 7 de julio de 2017

Analítica

  • Se SetCurrentScreen para que funcione desde cualquier hilo.

Autenticación

  • (iOS) Se solucionó un problema que invalidaba incorrectamente al usuario actual si fallaba el enlace de credenciales.
  • Se solucionó un problema que causaba que una aplicación se bloqueara o no recibiera un enlace dinámico si se abría cuando la aplicación está instalada y no se está ejecutando.

FCM

  • (iOS) Se corrigió un bloqueo cuando no se establece Listener .
  • Listener::OnTokenReceived fijo Listener::OnTokenReceived ocasionalmente se llama dos veces con el mismo token.

Versión 4.0.1 - 16 de junio de 2017

FCM

  • (Android): se corrigió un problema por el cual Terminate() no cerraba correctamente la biblioteca FCM.
  • (iOS): se solucionó un problema por el cual la biblioteca se bloqueaba al iniciarse si no había token de registro.

Enlaces e invitaciones dinámicas

  • (iOS) Se solucionó un problema que hacía que una aplicación no recibiera un enlace dinámico si se abría cuando la aplicación está instalada y no se está ejecutando.

Versión 4.0.0 - 9 de junio de 2017

  • (Android) Se corrigió el bloqueo en algunas circunstancias después de resolver dependencias al actualizar los servicios de Google Play.

Autenticación

  • Se agregó soporte para la autenticación del número de teléfono.
  • Se agregó la capacidad de recuperar metadatos de usuario.
  • Notificación de token movida a un objeto de escucha separado.
  • Se agregó una biblioteca independiente separada de las invitaciones.

Invita

  • (iOS) Se corrigió un problema en la combinación de métodos del SDK de Analytics que provocaba que los enlaces dinámicos / invitaciones no se enviaran a la aplicación.

FCM

  • (Android) Se corrigió una regresión introducida en 3.0.3 que causaba un bloqueo al abrir una notificación cuando la aplicación se ejecuta en segundo plano.
  • (iOS) Se corrigió la interoperación con otros usuarios de notificaciones locales.

Versión 3.1.2 - 11 de mayo de 2017

Autenticación

  • Se firebase::auth::Auth un bloqueo causado por una referencia de memoria obsoleta cuando un objeto firebase::auth::Auth se destruía y luego se recreaba para el mismo objeto de la App .
  • Se AuthStateListener una posible corrupción de memoria cuando se destruía AuthStateListener .

Versión 3.1.1 - 9 de mayo de 2017

  • (Android) Se corrigió un bloqueo en el actualizador de servicios de Google Play que ocurría al hacer clic fuera del cuadro de diálogo en dispositivos Android 4.x.

Autenticación

  • Se solucionó un problema que causaba la invalidación de los usuarios cuando fallaba una credencial de enlace.
  • En User::refresh_token() método User::refresh_token() .

FCM

  • (Android) Se resolvió un problema que hacía que una aplicación recibiera un mensaje vacío cuando se recibe un mensaje de notificación mientras la aplicación está en segundo plano y el usuario toca el ícono de la aplicación en lugar del mensaje de notificación.

Invita

  • (iOS) Se solucionó un problema que application:openURL:sourceApplication:annotation: que la aplicación del método delegado de la application:openURL:sourceApplication:annotation: no se llamara al vincular la biblioteca de invitaciones.

Almacenamiento

  • Se modificó la API para que sea posible construir metadatos sin una referencia de almacenamiento.

Versión 3.1.0 - 8 de marzo de 2017

Almacenamiento

  • Se agregó una sobrecarga para Storage::GetInstance() que acepta una URL gs://... , por lo que puede usar Cloud Storage con múltiples depósitos.

Invita

  • (Android) Se solucionó un problema por el cual las invitaciones con enlaces vacíos no se recibían.

Versión 3.0.0 - 27 de febrero de 2017

  • Métodos renombrados y en desuso que eran inconsistentes con la Guía de estilo de Google C ++. Los métodos obsoletos se eliminarán en una versión futura (aproximadamente 2-3 versiones a partir de ahora).

Analítica

  • Se agregó SetCurrentScreen() .

Autenticación

  • Se corrigió una condición de carrera para acceder a los datos del usuario en devoluciones de llamada
  • (Android) Se agregó is_valid() para verificar si una credencial devuelta por GetCredential() es válida.

Invita

  • (Android) Se agregó una función Fetch() para recuperar las invitaciones entrantes en momentos distintos del inicio de la aplicación. Debe llamar a esto en Android cuando su aplicación regrese al primer plano (en iOS, esto se maneja automáticamente).
  • (iOS) Se corrigió la regresión desde 2.1.1 que rompió las invitaciones si AppDelegate no implementaba el método de URL abierta.

FCM

  • Se agregó un campo a firebase::messaging::Message especifica si el mensaje se recibió cuando la aplicación estaba en segundo plano.
  • (Android) Se agregó un archivo AAR que contiene los cambios de manifiesto de Android necesarios para recibir notificaciones. Puede agregar esto a su proyecto en lugar de modificar el manifiesto directamente.
  • (iOS) Se corrigió la regresión desde 2.1.1 que rompió FCM en iOS 8 y 9 cuando un AppDelegate no implementó métodos de notificación remota.

Configuración remota

  • Se agregó soporte para inicializar los valores predeterminados de la configuración remota de firebase::Variant valores, incluidos los datos binarios.

Versión 2.1.3 - 6 de febrero de 2017

  • Se firebase::Future::OnCompletion un posible punto muerto al ejecutar devoluciones de llamada registradas a través de firebase::Future::OnCompletion .

Autenticación

  • (Android) Se corrigió un error en firebase::auth::User::PhotoUri .

FCM

  • (iOS) Se eliminó la dependencia rígida de Xcode 8.
  • (Android) Se solucionó un problema por el cual la aplicación recibiría un mensaje vacío al inicio.

Versión 2.1.2 - 20 de enero de 2017

AdMob

  • (Android) Se solucionó un problema en firebase::admob::InterstitialAd que causaba un bloqueo después de mostrar múltiples anuncios intersticiales.

Versión 2.1.1 - 18 de enero de 2017

Autenticación

  • (Android) Se solucionó un problema que hacía que el futuro nunca se completara al iniciar sesión mientras un usuario ya había iniciado sesión.

FCM

  • (iOS) Se solucionó un problema con el método swizzling que causaba que no se llamara a algunos de los métodos UIApplicationDelegate de la aplicación.
  • (iOS) Se solucionó un problema que causaba un bloqueo al inicializar la biblioteca al compilar con Xcode 8 para iOS 10.

Invita

  • (iOS) Se solucionó un problema con el método swizzling que causaba que no se llamara a algunos de los métodos UIApplicationDelegate de la aplicación.

Versión 2.1.0 - 9 de diciembre de 2016

Almacenamiento

  • Se agregó una biblioteca de cliente C ++ para almacenamiento. Para comenzar, consulte Comenzar con Cloud Storage para C ++ .
  • (Android) Pausar y reanudar las operaciones de almacenamiento hará que la transferencia de datos falle con el código de error kErrorUnknown .

Autenticación

  • Se agregó una comprobación de credenciales de usuario guardadas cuando se inicia la autenticación.

Versión 2.0.0 - 7 de noviembre de 2016

AdMob

  • Se agregó soporte para AdMob Native Express Ads.

Autenticación

  • Se agregó la clase AuthStateListener que proporciona notificaciones cuando un usuario AuthStateListener sesión.

Base de datos en tiempo real

Invita

Versión 1.2.1 - 3 de octubre de 2016

Mensajería en la nube

  • (Android) Se corrigió un error que impedía que las aplicaciones se terminaran correctamente.
  • (iOS) Se agregó la implementación del constructor de copia faltante en iOS y bibliotecas de código auxiliar.

Versión 1.2.0 - 21 de septiembre de 2016

  • (Android) Se agregó firebase::ModuleInitializer , una clase auxiliar para inicializar los módulos de Firebase y manejar cualquier dependencia faltante en los servicios de Google Play.

Mensajería en la nube

  • Se agregó firebase::messaging::Notification y métodos asociados para permitir la recuperación del contenido de una notificación.
  • (iOS) Soporte agregado para notificaciones de iOS 10.
  • (Android) Se solucionó un problema que causaba un bloqueo si Cloud Messaging se inicializaba antes de cargar la biblioteca nativa.

Autenticación

  • (Android) Se agregaron nuevos métodos API, User::SendEmailVerification() y User::EmailVerified() para verificar la dirección de correo electrónico de un usuario.

Configuración remota

  • Se GetKeys() métodos GetKeys() y GetKeysByPrefix() para permitir a los desarrolladores encontrar claves de parámetros basadas en un prefijo de clave.

Invita

  • (iOS) Se InvitesReceiver::Fetch() un problema que podría bloquear una aplicación durante el cierre cuando el InvitesReceiver::Fetch() está pendiente.
  • Fixed an issue that occurred when initializing InvitesSender and InvitesReceiver simultaneously.

AdMob

  • Added the Rewarded Video Mediation feature to the C++ SDK. For more information, see the Rewarded Video C++ guide .
  • You can now pass your AdMob App ID to firebase::admob::Initialize() to help reduce latency for the initial ad request.
  • (iOS) You must now call BannerView::Show() to display an ad. Previously, this was only required on Android.
  • Fixed an issue where BannerView::Listener() received an incorrect bounding box.

Version 1.1.0 - August 1, 2016

App

  • Added utility functions to check whether Google Play services is available. See google_play_services::CheckAvailability() and google_play_services::MakeAvailable() for more information.
  • App::Create() will no longer check for Google Play services, nor will it return nullptr . It will always return an App, and the individual Firebase features will check for Google Play services at initialization if required.

Analytics

  • Fixed a crash that occurs when logging string events.

Authentication

  • firebase::auth::GetAuth() now has an option to return a result that indicates whether initialization was successful, and to return nullptr if initialization failed.

Firebase Cloud Messaging

  • firebase::messaging::Initialize() now returns a result that indicates whether initialization was successful.

Invites

  • Added firebase::invites::Initialize() , which you must call once prior to creating InvitesSender or InvitesReceiver instances. This function returns a result that indicates whether initialization was successful.
  • If you call InvitesReceiver::Fetch() or InvitesReceiver::ConvertInvitation() without first calling firebase::invites::Initialize() , the operation will never complete. To work around this issue, ensure that firebase::invites::Initialize() is called once before creating any InvitesReceiver instances.
  • If you create InvitesSender and then InvitesReceiver , the InvitesReceiver may fail to connect, and be unable to fetch results. To work around this issue, you can delay creating the InvitesSender until after the future returned by InvitesReceiver::Fetch() has completed.

Remote Config

  • firebase::remote_config::Initialize() now returns a result that indicates whether initialization was successful.

AdMob

  • firebase::admob::Initialize() now returns a result that indicates whether initialization was successful.

Version 1.0.1 - June 27, 2016

This update includes a variety of documentation updates and minor bug fixes. This update primarily fixes bugs in the AdMob portion of the C++ SDK. These fixes are described below:

  • Modified firebase::App to check for the required version of Google Play services on creation to prevent firebase::App creation from failing if a user's device is out of date. If Google Play services is out of date, a dialog will prompt the user to install a new version. With the previous version of this SDK, you needed needed to manually check for an up-to-date Google Play services SDK using GoogleApiClient .

AdMob

  • Fixed a potential deadlock when using SetListener from a notification callback in firebase::admob::InterstitialAd and firebase::admob::BannerView on iOS.
  • Fixed a race condition on destruction of admob::BannerView on Android.
  • Fixed Future handle leak. An internal memory leak occurred for objects or modules that use futures for the lifetime of the object or module. For example, during the lifetime of a BannerView object, each call to a method which returns a Future could potentially allocate memory which wouldn't be reclaimed until the BannerView object is destroyed.