CINXE.COM

Firebase Android SDK Release Notes

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Firebase"> <meta property="og:type" content="website"><meta name="theme-color" content="#a8c7fa"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/firebase/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/css/app.css"> <link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/css/dark-theme.css" disabled> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/favicon.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/touchicon-180.png"><link rel="canonical" href="https://firebase.google.com/support/release-notes/android"><link rel="search" type="application/opensearchdescription+xml" title="Firebase" href="https://firebase.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://firebase.google.com/support/release-notes/android" /><link rel="alternate" hreflang="x-default" href="https://firebase.google.com/support/release-notes/android" /><title>Firebase Android SDK Release Notes</title> <meta property="og:title" content="Firebase Android SDK Release Notes"><meta property="og:url" content="https://firebase.google.com/support/release-notes/android"><meta property="og:locale" content="en"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Firebase Android SDK Release Notes" } </script> </p> <meta name="gtm_var" data-key="docType" data-value="changelog"> <link rel="stylesheet" href="/extras.css"></head> <body class="firebase-support-release-page" template="page" theme="firebase-icy-theme" type="article" appearance layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner" keep-tabs-visible> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="firebase" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/lockup.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Firebase"> <img src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/lockup.svg" class="devsite-site-logo" alt="Firebase"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-dropdown "> <a href="https://firebase.google.com/products-build" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://firebase.google.com/products-build" track-type="nav" track-metadata-position="nav - build" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" > Build </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-build" track-metadata-position="nav - build" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--primary firebase-build"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Build</li> <li class="devsite-nav-description">Get to market quickly and securely with products that can scale globally </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products-build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-build" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build" tooltip > <div class="devsite-nav-item-title"> Go to Build </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--secondary firebase-build"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Build Products</li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-check" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-check" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> App Check </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-hosting" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-hosting" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> App Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/auth" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/auth" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Authentication </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/functions" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/functions" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Cloud Functions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/storage" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/storage" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Cloud Storage </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/data-connect" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/data-connect" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Data Connect </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/extensions" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/extensions" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Extensions </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/ml" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/ml" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Firebase ML </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/firestore" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/firestore" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Firestore </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/genkit" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/genkit" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Genkit </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/hosting" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/hosting" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/realtime-database" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/realtime-database" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Realtime Database </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/vertex-ai-in-firebase" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/vertex-ai-in-firebase" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Vertex AI in Firebase </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/generative-ai" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/generative-ai" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Generative AI </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://firebase.google.com/products-run" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://firebase.google.com/products-run" track-type="nav" track-metadata-position="nav - run" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" > Run </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-run" track-metadata-position="nav - run" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--primary firebase-run"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Run</li> <li class="devsite-nav-description">Run your app with confidence and deliver the best experience for your users </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products-run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-run" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run" tooltip > <div class="devsite-nav-item-title"> Go to Run </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--secondary"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Run Products</li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/ab-testing" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/ab-testing" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> A/B Testing </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-distribution" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-distribution" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> App Distribution </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/cloud-messaging" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/cloud-messaging" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Cloud Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/crashlytics" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/crashlytics" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Crashlytics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/analytics" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/analytics" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Google Analytics </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/in-app-messaging" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/in-app-messaging" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> In-App Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/performance" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/performance" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Performance Monitoring </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/remote-config" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/remote-config" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Remote Config </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/test-lab" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/test-lab" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Test Lab </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://firebase.google.com/solutions" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://firebase.google.com/solutions" track-type="nav" track-metadata-position="nav - solutions" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" > Solutions </a> </tab> <tab > <a href="https://firebase.google.com/pricing" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://firebase.google.com/pricing" track-type="nav" track-metadata-position="nav - pricing" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Pricing" track-name="pricing" > Pricing </a> </tab> <tab class="devsite-dropdown "> <a href="https://firebase.google.com/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://firebase.google.com/docs" track-type="nav" track-metadata-position="nav - docs" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > Docs </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Docs" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs" track-metadata-position="nav - docs" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/guides" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/guides" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Fundamentals </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/build" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Build </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/run" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Run </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/reference" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/reference" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Reference </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/samples" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/samples" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Samples </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://firebase.google.com/community" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://firebase.google.com/community" track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > Community </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Community" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/community" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/community/learn" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/community/learn" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Learn </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/community/events" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/community/events" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Events </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/community/stories" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/community/stories" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Stories </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-active"> <a href="https://firebase.google.com/support" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://firebase.google.com/support" track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" aria-label="Support, selected" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Firebase" tenant-name="Firebase" > <form class="devsite-search-form" action="https://firebase.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-appearance-selector></devsite-appearance-selector> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="//console.firebase.google.com" data-category="Site-Wide Custom Events" data-label="Site header link" > Go to console </a> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section devsite-header-no-lower-tabs "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://firebase.google.com/support" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Support </a> </li> </ul> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="firebase" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/lockup.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Firebase"> <img src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/lockup.svg" class="devsite-site-logo" alt="Firebase"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/products-build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" > <span class="devsite-nav-text" tooltip menu="Build"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Build"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/products-run" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Run" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Run </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" > <span class="devsite-nav-text" tooltip menu="Run"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Run"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/solutions" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Solutions" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Solutions </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/pricing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Pricing" track-name="pricing" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Pricing" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Pricing </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Docs </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > <span class="devsite-nav-text" tooltip menu="Docs"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Docs"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/community" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > <span class="devsite-nav-text" tooltip menu="Community"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Community"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/support" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="//console.firebase.google.com" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Go to console </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Developer Support</span> </div></li> <li class="devsite-nav-item"><a href="/support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support" ><span class="devsite-nav-text" tooltip>Contact Support</span></a></li> <li class="devsite-nav-item"><a href="/support/scope" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/scope" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/scope" ><span class="devsite-nav-text" tooltip>Scope of no-cost support</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Support Guides</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/support/guides" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/support/faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/faq" ><span class="devsite-nav-text" tooltip>FAQ</span></a></li><li class="devsite-nav-item"><a href="/support/guides/security-checklist" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/security-checklist" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/security-checklist" ><span class="devsite-nav-text" tooltip>Security checklist</span></a></li><li class="devsite-nav-item"><a href="/support/guides/launch-checklist" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/launch-checklist" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/launch-checklist" ><span class="devsite-nav-text" tooltip>Launch checklist</span></a></li><li class="devsite-nav-item"><a href="/support/guides/service-accounts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/service-accounts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/service-accounts" ><span class="devsite-nav-text" tooltip>Firebase-related service accounts</span></a></li><li class="devsite-nav-item"><a href="/support/guides/init-options" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/init-options" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/init-options" ><span class="devsite-nav-text" tooltip>Troubleshoot initialization options</span></a></li><li class="devsite-nav-item"><a href="/support/guides/analytics-adsupport" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/analytics-adsupport" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/analytics-adsupport" ><span class="devsite-nav-text" tooltip>Enable the AdSupport framework</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Dynamic Links deprecation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/support/dynamic-links-faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/dynamic-links-faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/dynamic-links-faq" ><span class="devsite-nav-text" tooltip>Deprecation FAQ</span></a></li><li class="devsite-nav-item"><a href="/support/guides/export-dynamic-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/export-dynamic-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/export-dynamic-links" ><span class="devsite-nav-text" tooltip>Export Dynamic Links metadata</span></a></li><li class="devsite-nav-item"><a href="/support/guides/app-links-universal-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/app-links-universal-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/app-links-universal-links" ><span class="devsite-nav-text" tooltip>Migrate to App Links &amp; Universal Links</span></a></li></ul></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Migrate from Parse</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/support/guides/parse-android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/parse-android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/parse-android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/support/guides/parse-ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/parse-ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/parse-ios" ><span class="devsite-nav-text" tooltip>iOS+</span></a></li></ul></li></ul></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Cloud Audit Logs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/support/guides/cloud-audit-logging/firebase-management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/cloud-audit-logging/firebase-management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/cloud-audit-logging/firebase-management" ><span class="devsite-nav-text" tooltip>Firebase Management</span></a></li><li class="devsite-nav-item"><a href="/support/guides/cloud-audit-logging/firebase-storage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/cloud-audit-logging/firebase-storage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/cloud-audit-logging/firebase-storage" ><span class="devsite-nav-text" tooltip>Cloud Storage for Firebase</span></a></li><li class="devsite-nav-item"><a href="/support/guides/cloud-audit-logging/firebase-cloud-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/cloud-audit-logging/firebase-cloud-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/cloud-audit-logging/firebase-cloud-messaging" ><span class="devsite-nav-text" tooltip>Firebase Cloud Messaging</span></a></li><li class="devsite-nav-item"><a href="/support/guides/cloud-audit-logging/firebase-app-check" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/cloud-audit-logging/firebase-app-check" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/cloud-audit-logging/firebase-app-check" ><span class="devsite-nav-text" tooltip>Firebase App Check</span></a></li><li class="devsite-nav-item"><a href="/support/guides/cloud-audit-logging/firebase-rules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/cloud-audit-logging/firebase-rules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/cloud-audit-logging/firebase-rules" ><span class="devsite-nav-text" tooltip>Firebase Security Rules</span></a></li><li class="devsite-nav-item"><a href="/support/guides/cloud-audit-logging/firebase-realtime-database" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/cloud-audit-logging/firebase-realtime-database" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/cloud-audit-logging/firebase-realtime-database" ><span class="devsite-nav-text" tooltip>Firebase Realtime Database</span></a></li><li class="devsite-nav-item"><a href="/support/guides/cloud-audit-logging/android-device-streaming" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/guides/cloud-audit-logging/android-device-streaming" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/guides/cloud-audit-logging/android-device-streaming" ><span class="devsite-nav-text" tooltip>Android Device Streaming</span></a></li></ul></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Recent Changes and Updates</span> </div></li> <li class="devsite-nav-item"><a href="/support/releases" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/releases" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/releases" ><span class="devsite-nav-text" tooltip>Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/ios" ><span class="devsite-nav-text" tooltip>iOS Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/android" ><span class="devsite-nav-text" tooltip>Android Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/js" ><span class="devsite-nav-text" tooltip>JavaScript Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/flutter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/flutter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/flutter" ><span class="devsite-nav-text" tooltip>Flutter Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/cpp-relnotes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/cpp-relnotes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/cpp-relnotes" ><span class="devsite-nav-text" tooltip>C++ Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/unity" ><span class="devsite-nav-text" tooltip>Unity Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/admin/node" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/admin/node" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/admin/node" ><span class="devsite-nav-text" tooltip>Admin Node.js Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/admin/java" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/admin/java" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/admin/java" ><span class="devsite-nav-text" tooltip>Admin Java Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/admin/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/admin/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/admin/python" ><span class="devsite-nav-text" tooltip>Admin Python Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/admin/go" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/admin/go" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/admin/go" ><span class="devsite-nav-text" tooltip>Admin Go Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/admin/dotnet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/admin/dotnet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/admin/dotnet" ><span class="devsite-nav-text" tooltip>Admin .NET Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/security-rules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/security-rules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/security-rules" ><span class="devsite-nav-text" tooltip>Security Rules Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/support/release-notes/cli" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/release-notes/cli" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/release-notes/cli" ><span class="devsite-nav-text" tooltip>Firebase CLI Release Notes</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Policies for changes and versioning</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/policies/changes-to-firebase/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /policies/changes-to-firebase/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/policies/changes-to-firebase/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/policies/changes-to-firebase/introducing-and-communicating-changes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /policies/changes-to-firebase/introducing-and-communicating-changes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/policies/changes-to-firebase/introducing-and-communicating-changes" ><span class="devsite-nav-text" tooltip>Introducing and communicating changes</span></a></li><li class="devsite-nav-item"><a href="/policies/changes-to-firebase/versioning-and-maintenance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /policies/changes-to-firebase/versioning-and-maintenance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/policies/changes-to-firebase/versioning-and-maintenance" ><span class="devsite-nav-text" tooltip>Versioning and maintenance</span></a></li></ul></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Legal Information</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/terms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /terms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/terms" ><span class="devsite-nav-text" tooltip>Terms of Service</span></a></li><li class="devsite-nav-item"><a href="/terms/billing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /terms/billing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/terms/billing" ><span class="devsite-nav-text" tooltip>Paid Services Terms</span></a></li><li class="devsite-nav-item"><a href="/terms/data-processing-terms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /terms/data-processing-terms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/terms/data-processing-terms" alt-paths=" /terms/usa-privacy-addendum "><span class="devsite-nav-text" tooltip>Data Processing and Security Terms</span></a></li><li class="devsite-nav-item"><a href="/terms/firebase-sccs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /terms/firebase-sccs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/terms/firebase-sccs" alt-paths=" /terms/firebase-sccs-uk-c2p /terms/firebase-sccs-eu-p2p /terms/firebase-sccs-eu-p2c /terms/firebase-sccs-eu-c2p /terms/firebase-sccs-eu-p2p-google-exporter /terms/crashlytics-sccs-uk-c2p /terms/crashlytics-sccs-eu-p2p /terms/crashlytics-sccs-eu-p2c /terms/crashlytics-sccs-eu-c2p /terms/crashlytics-sccs-eu-p2p-google-exporter /terms/crashlytics-app-distribution-mcc "><span class="devsite-nav-text" tooltip>Firebase: Standard Contractual Clauses</span></a></li><li class="devsite-nav-item"><a href="/terms/service-level-agreement" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /terms/service-level-agreement" track-type="bookNav" track-name="click" track-metadata-eventdetail="/terms/service-level-agreement" ><span class="devsite-nav-text" tooltip>Service Level Agreement for Hosting and Realtime Database</span></a></li><li class="devsite-nav-item"><a href="/terms/service-level-agreement/cloud-storage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /terms/service-level-agreement/cloud-storage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/terms/service-level-agreement/cloud-storage" ><span class="devsite-nav-text" tooltip>Cloud Storage for Firebase Service Level Agreement</span></a></li><li class="devsite-nav-item"><a href="/policies/app-indexing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /policies/app-indexing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/policies/app-indexing" ><span class="devsite-nav-text" tooltip>Firebase App Indexing User Data Policy</span></a></li><li class="devsite-nav-item"><a href="/terms/crashlytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /terms/crashlytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/terms/crashlytics" ><span class="devsite-nav-text" tooltip>Crashlytics and App Distribution Terms</span></a></li><li class="devsite-nav-item"><a href="/terms/subprocessors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /terms/subprocessors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/terms/subprocessors" ><span class="devsite-nav-text" tooltip>Firebase Subprocessors</span></a></li></ul></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Privacy and Security Information</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/support/privacy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/privacy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/privacy" ><span class="devsite-nav-text" tooltip>Privacy and Security in Firebase</span></a></li><li class="devsite-nav-item"><a href="/support/privacy/dpo_and_eu_rep" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/privacy/dpo_and_eu_rep" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/privacy/dpo_and_eu_rep" ><span class="devsite-nav-text" tooltip>Designate Data Protection Officers and EU Representatives</span></a></li><li class="devsite-nav-item"><a href="/support/privacy/dpo" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/privacy/dpo" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/privacy/dpo" ><span class="devsite-nav-text" tooltip>Firebase Data Privacy Inquiries</span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/support/privacy/manage-iids" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/privacy/manage-iids" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/privacy/manage-iids" ><span class="devsite-nav-text" tooltip>Manage Instance ID data</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/support/privacy/clear-export-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/privacy/clear-export-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/privacy/clear-export-data" ><span class="devsite-nav-text" tooltip>Clear and export users&#39; data</span></a></li><li class="devsite-nav-item"><a href="/support/privacy/storing-privacy-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /support/privacy/storing-privacy-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/support/privacy/storing-privacy-settings" ><span class="devsite-nav-text" tooltip>Storing privacy settings with Firebase</span></a></li></ul></li> </ul> <ul class="devsite-nav-list" menu="Build" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build </span> </span> </li> <li class="devsite-nav-item"> <a href="/products-build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to Build" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Go to Build </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build Products </span> </span> </li> <li class="devsite-nav-item"> <a href="/products/app-check" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Check" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Check </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/app-hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/auth" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authentication" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authentication </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/functions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Functions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Functions </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Storage </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/data-connect" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data Connect" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data Connect </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Extensions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Extensions </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firebase ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/firestore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firestore" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firestore </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/genkit" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Genkit" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Genkit </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/realtime-database" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Realtime Database" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Realtime Database </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/vertex-ai-in-firebase" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Vertex AI in Firebase" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Vertex AI in Firebase </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/generative-ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Generative AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Generative AI </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Run" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Run </span> </span> </li> <li class="devsite-nav-item"> <a href="/products-run" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to Run" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Go to Run </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Run Products </span> </span> </li> <li class="devsite-nav-item"> <a href="/products/ab-testing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: A/B Testing" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > A/B Testing </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/app-distribution" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Distribution" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Distribution </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/cloud-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/crashlytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Crashlytics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Crashlytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/analytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Analytics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Analytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/in-app-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: In-App Messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > In-App Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/performance" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance Monitoring" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Performance Monitoring </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/remote-config" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Remote Config" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Remote Config </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/test-lab" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test Lab" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Test Lab </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Docs" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/guides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fundamentals" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Fundamentals </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/run" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Run" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Run </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/reference" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Community" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/community/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Learn </span> </a> </li> <li class="devsite-nav-item"> <a href="/community/events" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Events" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Events </span> </a> </li> <li class="devsite-nav-item"> <a href="/community/stories" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Stories" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Stories </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /styles/docs.css */ .center { text-align: center } /* Used in AdMob code examples */ .oldcode { opacity: .40; /* IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); /* IE <= 7 */ filter:alpha(opacity=40); } .newcode { font-weight: bold; } /* Device Screenshots */ .deviceshot { max-width: 700px; max-height: 400px; } /* Start Changelog styles */ .badge { position: relative; top: -3px; border-radius: 16px; display: inline-block; width: 110px; height: 32px; line-height: 32px; margin-right: 10px; text-transform: uppercase; font-size: 13px; font-weight: 700; text-align: center; color: var(--tenant-inverted-text-color); } .checklist > ul { padding-left: 125px; } .checklist > ul > li { list-style-type: none; margin-bottom: 22px; } .changelog > ul { padding-left: 0; } .changelog > ul > li { list-style-type: none; margin-bottom: 22px; } .firebase-support-release-page .changelog > ul { list-style-type: none; padding-left: 125px; } .firebase-release-roundup .changelog > ul { list-style-type: disc outside; padding-left: 40px; } .firebase-release-roundup .changelog > ul > li { list-style-type: disc outside; margin-bottom: 12px; } .generic-android::before, .generic-ios::before, .generic-mobile::before, .generic-web::before, .generic-flutter::before, .generic-unity::before, .generic-cpp::before, .generic-all::before, .release-changed::before, .release-deprecated::before, .release-feature::before, .release-fixed::before, .release-important::before, .release-issue::before, .release-removed::before, .release-unchanged::before, .release-android::before, .release-android-bom::before, .release-ios::before, .release-javascript::before, .release-flutter::before, .release-unity::before, .release-cpp::before, .release-admin::before, .release-functions::before, .release-cli::before, .release-rules::before { display: block; float: left; width: 110px; height: 32px; margin-left: -125px; margin-right: 10px; border-radius: 16px; text-transform: uppercase; font-size: 13px; font-weight: 700; text-align: center; color: var(--tenant-inverted-text-color); } .generic-android::before { content: "Android"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #839e2e; } .generic-ios::before { text-transform: none; content: "iOS+"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #003fdd; } .generic-mobile::before { content: "Mobile"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #f4b400; } .generic-web::before { content: "Web"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #7e57c2; } .generic-flutter::before { content: "Flutter"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #29b6f6; } .generic-unity::before { content: "Unity"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #7f6545; } .generic-cpp::before { content: "C++"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #ff8c00; } .generic-all::before { content: "All"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #ccc; } .release-changed::before { content: "changed"; background-color: #ff6961; padding-top: 4px; } .release-deprecated::before { content: "deprecated"; background-color: #d70015; padding-top: 4px; } .release-feature::before { content: "feature"; background-color: #0f9d58; padding-top: 4px; } .release-fixed::before { content: "fixed"; background-color: #4285f4; padding-top: 4px; } .release-important::before { content: "important"; background-color: #d70015; padding-top: 4px; } .release-issue::before { content: "issue"; background-color: #d70015; padding-top: 4px; } .release-removed::before { content: "removed"; background-color: #546e7a; padding-top: 4px; } .release-unchanged::before { content: "no change"; background-color: #ccc; padding-top: 4px; } .release-android::before { content: "Android"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #839e2e; } .release-android-bom::before { content: "Android BoM"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #839e2e; } .release-ios::before { text-transform: none; content: "iOS+"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #003fdd; } .release-javascript::before { content: "JavaScript"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #7e57c2; } .release-flutter::before { content: "Flutter"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #29b6f6; } .release-unity::before { content: "Unity"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #7f6545; } .release-cpp::before { content: "C++"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #ff8c00; } .release-admin::before { content: "Admin"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #909090; } .release-functions::before { content: "Functions"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #2c384a; } .release-cli::before { text-transform: none; content: "CLI"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #f4b400; } .release-rules::before { content: "Rules"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #002991; } /* End Changelog styles */ /* Docs Overview page styles */ .docs-android, .docs-ios, .docs-web, .docs-cpp, .docs-unity { height: 64px; width: 64px; margin: 10px 16px 0 -16px; } .firebase-docs-overview .devsite-landing-row h2 { margin: 80px 0 -40px; } .devsite-landing-row-3-up .docs-landing-row-item { width: calc((100% - 80px)/2); display: inline-block; } .docs-landing-icon { font-size: 48px; height: 48px; margin: 11px; width: 48px; } .firebase-reference-list { display: -ms-flex; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; list-style: none; margin: 0 0 40px; padding: 0; } .firebase-reference-list-item { -ms-flex: 0 0 50%; flex: 0 0 50%; margin: 40px 0 0; padding: 0; } .firebase-reference-list-item > a { -ms-flex-align: center; align-items: center; display: -ms-flex; display: flex; } .firebase-reference-list-item > a:not(:hover) h3 { color: var(--tenant-primary-text-color); } .firebase-reference-list-item > a:not(:hover) li, .firebase-reference-list-item > a:not(:hover) p { color: var(--tenant-secondary-text-color); } .firebase-reference-list-item .docs-landing-icon { -ms-flex-align: center; align-items: center; background-color: var(--tenant-docs-landing-icon-background, #f5f5f5); border-radius: 50%; -ms-flex: 0 0 88px; flex: 0 0 88px; height: 88px; -ms-justify-content: center; justify-content: center; margin: 0 16px 0 0; padding: 20px; } .firebase-reference-list-item h3 { -ms-flex: 0 0 auto; flex: 0 0 auto; font-size: 18px; line-height: 28px; margin: 0; } .firebase-reference-list-item ul { list-style: none; padding: 0; } .docs-android, .docs-ios, .docs-web, .docs-cpp, .docs-unity { height: 88px; width: auto; } .firebase-reference-list-item.docs-android .docs-landing-icon { color: #00bfa5; } .firebase-reference-list-item.docs-cpp .docs-landing-icon { color: #fd8c09; } .firebase-reference-list-item.docs-ios .docs-landing-icon { color: #16aaca; } .firebase-reference-list-item.docs-unity .docs-landing-icon { color: #000; } .firebase-reference-list-item.docs-web .docs-landing-icon { color: #c52062; } .firebase-reference-list-item.docs-http .docs-landing-icon { color: #3f51b5; } @media (max-width: 1000px) { .firebase-reference-list { -ms-flex-direction: column; flex-direction: column; } } /* end Docs Overview page styles */ /* Full-page platform selector for Crashlytics docs */ /* Note: h3 in selector content must include hide-from-toc */ .full-page-selector, .full-page-selector-content { border: none; font-size: inherit; } .full-page-selector > .kd-buttonbar { margin: 32px 0; } .full-page-selector > section { display: none; } .full-page-selector-content > .selected { padding: 0; font-size: inherit; } .full-page-selector-content > .kd-buttonbar { display: none; } .select-page { display: none; } .select-page + .ds-selector-tabs, .after-selection ~ .ds-selector-tabs { border: none; font-size: inherit; } .select-page + .ds-selector-tabs > .kd-buttonbar { margin: 32px 0; } .select-page + .ds-selector-tabs > section { display: none; } .after-selection ~ .ds-selector-tabs > .selected { padding: 0; font-size: inherit; } .after-selection ~ .ds-selector-tabs > section p { line-height: 24px; } .after-selection ~ .ds-selector-tabs > .kd-buttonbar { display: none; } /* End full-page platform selector */ /* Custom beta and alpha indicators */ .devsite-nav-icon[data-icon="alpha"]::before { content: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M13.2,15c-0.3-0.9-0.6-1.7-0.9-2.6L12.1,12c0-0.1-0.1-0.3-0.1-0.4c-1.2,2.1-2.4,2.9-4.5,2.9C4.8,14.5,3,12.6,3,9s1.8-5.5,4.5-5.5c2.1,0,3.4,0.8,4.5,2.9L12.1,6l0.1-0.4c0.4-1.1,0.7-1.9,0.9-2.6h2.2c-0.4,0.8-0.7,1.7-1.2,3.2L14,6.6c-0.3,0.8-0.5,1.6-0.8,2.4c0.3,0.7,0.6,1.5,0.8,2.4l0.1,0.4c0.5,1.5,0.8,2.4,1.2,3.2C15.4,15,13.2,15,13.2,15z M7.5,5.5C5.9,5.5,5,6.5,5,9s0.9,3.5,2.5,3.5C9,12.5,9.9,11.6,11,9C9.9,6.4,9,5.5,7.5,5.5z' fill='%2354617d'/></svg>); } .color-scheme--dark .devsite-nav-icon[data-icon="alpha"]::before { content: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M13.2,15c-0.3-0.9-0.6-1.7-0.9-2.6L12.1,12c0-0.1-0.1-0.3-0.1-0.4c-1.2,2.1-2.4,2.9-4.5,2.9C4.8,14.5,3,12.6,3,9s1.8-5.5,4.5-5.5c2.1,0,3.4,0.8,4.5,2.9L12.1,6l0.1-0.4c0.4-1.1,0.7-1.9,0.9-2.6h2.2c-0.4,0.8-0.7,1.7-1.2,3.2L14,6.6c-0.3,0.8-0.5,1.6-0.8,2.4c0.3,0.7,0.6,1.5,0.8,2.4l0.1,0.4c0.5,1.5,0.8,2.4,1.2,3.2C15.4,15,13.2,15,13.2,15z M7.5,5.5C5.9,5.5,5,6.5,5,9s0.9,3.5,2.5,3.5C9,12.5,9.9,11.6,11,9C9.9,6.4,9,5.5,7.5,5.5z' fill='%239eabc3'/></svg>); } .devsite-nav-icon[data-icon="beta"]::before { content: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M12.2,7.7c1.8,1.2,2.3,3.7,1.1,5.6c-0.7,1.1-2,1.8-3.3,1.8H7v2H5V4c0-1.1,0.9-2,2-2h2.5C11.4,2,13,3.6,13,5.5C13,6.3,12.7,7.1,12.2,7.7z M7,13h3c1.1,0,2-0.9,2-2s-0.9-2-2-2H7V13z M7,7h2.5C10.3,7,11,6.3,11,5.5S10.3,4,9.5,4H7V7z' fill='%2354617d'/></svg>); } .color-scheme--dark .devsite-nav-icon[data-icon="beta"]::before { content: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M12.2,7.7c1.8,1.2,2.3,3.7,1.1,5.6c-0.7,1.1-2,1.8-3.3,1.8H7v2H5V4c0-1.1,0.9-2,2-2h2.5C11.4,2,13,3.6,13,5.5C13,6.3,12.7,7.1,12.2,7.7z M7,13h3c1.1,0,2-0.9,2-2s-0.9-2-2-2H7V13z M7,7h2.5C10.3,7,11,6.3,11,5.5S10.3,4,9.5,4H7V7z' fill='%239eabc3'/></svg>); } .firebase-platform-label { font: 500 12px/24px Roboto,sans-serif; } /* Full-page platform selector dropdown */ /* Note: use menu variables in _elements.html file */ .full-page-selector-dropdown { border: none; position: relative; float: left; display: inline-block; } .full-page-selector-dropdown > .ds-selector-tabs { display: none; position: absolute; min-width: 160px; z-index: 1; } .full-page-selector-dropdown:hover .ds-selector-tabs { display: block; margin: 0; } .full-page-selector-dropdown:hover .kd-tabbutton { display: block; border: none; height: inherit; text-align: left; } .full-page-selector-dropdown:hover .kd-buttonbar { border: none; height: inherit; } .full-page-selector-dropdown h3:hover { color: var(--tenant-inverted-text-color); background-color: #039be5; } .full-page-selector-dropdown:hover .devsite-overflow-menu-button { display: none; } img.white-bg { padding: 5px; border-radius: 2px; background-color: #fff; } </style> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://firebase.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Firebase" > Firebase </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://firebase.google.com/support" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Support </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/icon.svg" project-support-url="https://firebase.google.com/support/" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Firebase Android SDK Release Notes </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <div class="changelog"> <p>To review release notes for the <span class="notranslate">Firebase</span> console and for other Firebase platforms and related SDKs, refer to the <a href="/support/releases">Firebase Release Notes</a>.</p> <p>Learn how to install these SDKs in your app: <a href="/docs/android/setup">Add Firebase to your Android Project</a>.</p> <p>Note that when using the <a href="/docs/android/learn-more#bom"><span class="notranslate">Firebase Android BoM</span></a>, you don&#39;t specify individual library versions when you declare Firebase library dependencies in your Gradle build configuration file.</p> <h4 class="showalways" id="compare-bom-versions" data-text=" Compare Firebase BoM versions " tabindex="-1"> Compare <span class="notranslate">Firebase BoM</span> versions </h4> <devsite-iframe><iframe src="https://firebase.google.com/frame/support/release-notes/android_3db40c83baac740808bcda9748085e5ac5987adbf452e0f44f2ba8b3356e2fb8.frame" class="framebox inherit-locale " allow="clipboard-write https://firebase-dot-devsite-v2-prod.appspot.com" allowfullscreen is-upgraded></iframe></devsite-iframe> <h3 id="latest_sdk_versions" data-text="Latest SDK versions" tabindex="-1">Latest SDK versions</h3> <aside class="note"><b>Important:</b> <strong>Kotlin developers should now depend on the main modules instead of the KTX modules</strong> (when using <a href="/support/release-notes/android#bom_v32-5-0"><span class="notranslate">Firebase BoM</span> v32.5.0+</a> or main module versions listed in <span class="notranslate">BoM</span> v32.5.0+). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>. <p>The main section of the table below lists the dependencies for the main modules and their latest versions. If needed, though, you can still find a <a href="#ktx-modules-deprecated">list of all KTX modules and their versions</a> at the bottom of the table. </p> </aside> <table> <thead> <tr> <th width="32%">Service or Product</th> <th width="45%">Gradle dependency</th> <th>Latest<br>version</th> <th width="10%"><abbr data-title="For an optimal experience using this product, add the Firebase SDK for Google Analytics.">Add <span class="notranslate">Analytics</span>?</abbr></th> </tr> </thead> <tbody> <tr> <td><a href="/docs/android/learn-more#bom"><span class="notranslate">Firebase Android BoM</span><br>(<span class="notranslate">Bill of Materials</span>)</a></td> <td>com.google.firebase:firebase-bom <br> <p>The latest <span class="notranslate">Firebase BoM</span> version contains the latest versions of each Firebase Android library. To learn which library versions are mapped to a specific <span class="notranslate">BoM</span> version, review the release notes for that <span class="notranslate">BoM</span> version.</p> </td> <td>33.9.0</td> <td></td> </tr> <tr> <td><a href="/docs/admob/android/quick-start"><span class="notranslate">AdMob</span></a></td> <td>com.google.android.gms:play-services-ads</td> <td>23.6.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/analytics/get-started?platform=android"><span class="notranslate">Analytics</span></a></td> <td>com.google.firebase:firebase-analytics</td> <td>22.2.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/app-check"><span class="notranslate">App Check</span> custom provider</a></td> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td></td> </tr> <tr> <td><a href="/docs/app-check"><span class="notranslate">App Check</span> debug provider</a></td> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td></td> </tr> <tr> <td><a href="/docs/app-check"><span class="notranslate">App Check</span> Play Integrity provider</a></td> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td></td> </tr> <tr> <td><a href="/docs/app-distribution/android/set-up-alerts"><span class="notranslate">App Distribution</span></a></td> <td>com.google.firebase:firebase-appdistribution</td> <td>16.0.0-beta14</td> <td></td> </tr> <tr> <td><a href="/docs/app-distribution/android/set-up-alerts"><span class="notranslate">App Distribution</span> API</a></td> <td>com.google.firebase:firebase-appdistribution-api</td> <td>16.0.0-beta14</td> <td></td> </tr> <tr> <td><a href="/docs/app-distribution"><span class="notranslate">App Distribution</span> plugin</a></td> <td>com.google.firebase:firebase-appdistribution-gradle</td> <td>5.1.1</td> <td></td> </tr> <tr> <td><a href="/docs/auth/android/start"><span class="notranslate">Authentication</span></a></td> <td>com.google.firebase:firebase-auth</td> <td>23.2.0</td> <td></td> </tr> <tr> <td><a href="/docs/firestore"><span class="notranslate">Cloud Firestore</span></a></td> <td>com.google.firebase:firebase-firestore</td> <td>25.1.2</td> <td></td> </tr> <tr> <td><a href="/docs/functions"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span></a></td> <td>com.google.firebase:firebase-functions</td> <td>21.1.0</td> <td></td> </tr> <tr> <td><a href="/docs/cloud-messaging/android/client"><span class="notranslate">Cloud Messaging</span></a></td> <td>com.google.firebase:firebase-messaging</td> <td>24.1.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/storage/android/start"><span class="notranslate">Cloud Storage</span></a></td> <td>com.google.firebase:firebase-storage</td> <td>21.0.1</td> <td></td> </tr> <tr> <td><a href="/docs/crashlytics/get-started?platform=android"><span class="notranslate">Crashlytics</span></a></td> <td>com.google.firebase:firebase-crashlytics</td> <td>19.4.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/crashlytics/ndk-reports"><span class="notranslate">Crashlytics</span> NDK</a></td> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>19.4.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/crashlytics/get-started?platform=android"><span class="notranslate">Crashlytics</span> plugin</a></td> <td>com.google.firebase:firebase-crashlytics-gradle</td> <td>3.0.3</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/android/learn-more#dynamic-feature-modules">Dynamic feature module support</a></td> <td>com.google.firebase:firebase-dynamic-module-support</td> <td>16.0.0-beta03</td> <td></td> </tr> <tr> <td><a href="/docs/dynamic-links/android/create"><span class="notranslate">Dynamic Links</span></a></td> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/in-app-messaging"><span class="notranslate">In-App Messaging</span></a></td> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.1</td> <td><span class="compare-yes"></span><br><em>(required)</em></td> </tr> <tr> <td><a href="/docs/in-app-messaging"><span class="notranslate">In-App Messaging</span> Display</a></td> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.1</td> <td><span class="compare-yes"></span><br><em>(required)</em></td> </tr> <tr> <td><a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations</a></td> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span> Model Downloader API</a></td> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.1</td> <td></td> </tr> <tr> <td><a href="/docs/perf-mon/get-started-android"><span class="notranslate">Performance Monitoring</span></a></td> <td>com.google.firebase:firebase-perf</td> <td>21.0.4</td> <td></td> </tr> <tr> <td><a href="/docs/perf-mon/get-started-android"><span class="notranslate">Performance Monitoring</span> plugin</a></td> <td>com.google.firebase:perf-plugin</td> <td>1.4.2</td> <td></td> </tr> <tr> <td><a href="/docs/database"><span class="notranslate">Realtime Database</span></a></td> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td></td> </tr> <tr> <td><a href="/docs/remote-config/get-started?platform=android"><span class="notranslate">Remote Config</span></a></td> <td>com.google.firebase:firebase-config</td> <td>22.1.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/vertex-ai/get-started?platform=android"><span class="notranslate">Vertex&nbsp;AI in Firebase</span></a></td> <td>com.google.firebase:firebase-vertexai</td> <td>16.1.0</td> <td></td> </tr> <tr> <td><a href="//developers.google.com/android/guides/google-services-plugin" class="external">Google Play services plugin</a></td> <td>com.google.gms:google-services</td> <td>4.4.2</td> <td></td> </tr> <tr> <th colspan="4"><b>DEPRECATED LIBRARIES</b></th> </tr> <tr> <td><a href="/docs/app-check"><span class="notranslate">App Check</span> SafetyNet provider</a></td> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.2</td> <td></td> </tr> <tr> <td><a href="/docs/app-indexing/android/app"><span class="notranslate">App Indexing</span></a></td> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td></td> </tr> <tr> <td colspan="4"> <devsite-expandable id="ktx-modules-deprecated"> <p class="showalways"><b>Firebase KTX modules</b></p> <aside class="warning"> <p>The Kotlin extensions (KTX) APIs have been added to their respective main modules. For example, all the APIs from <code translate="no" dir="ltr">firebase-perf-ktx</code> have been added to <code translate="no" dir="ltr">firebase-perf</code> under the <code translate="no" dir="ltr">com.google.firebase.perf</code> package. </p> <p><strong>This change means that Kotlin developers should now depend on the main modules instead of the KTX modules</strong> (when using <a href="/support/release-notes/android#bom_v32-5-0"><span class="notranslate">Firebase BoM</span> v32.5.0+</a> or main module versions listed in <span class="notranslate">BoM</span> v32.5.0+). </p> <p>As part of this change, the KTX APIs in every KTX module are now deprecated. As early as September 2024, we'll no longer release KTX modules, and we'll also remove the KTX libraries from the <span class="notranslate">Firebase Android BoM</span> at that time. </p> <p>If you use KTX APIs from the KTX modules, we recommend that you <strong><em>migrate your app to use KTX APIs from the main modules instead</em></strong>. For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>. </p> </aside> <table> <tr> <td><a href="/docs/analytics/get-started?platform=android"><span class="notranslate">Analytics</span></a></td> <td>com.google.firebase:firebase-analytics-ktx</td> <td>22.2.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/app-check"><span class="notranslate">App Check</span> custom provider</a></td> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td></td> </tr> <tr> <td><a href="/docs/app-distribution/android/set-up-alerts"><span class="notranslate">App Distribution</span> API</a></td> <td>com.google.firebase:firebase-appdistribution-api-ktx</td> <td>16.0.0-beta14</td> <td></td> </tr> <tr> <td><a href="/docs/auth/android/start"><span class="notranslate">Authentication</span></a></td> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.2.0</td> <td></td> </tr> <tr> <td><a href="/docs/firestore"><span class="notranslate">Cloud Firestore</span></a></td> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.1.2</td> <td></td> </tr> <tr> <td><a href="/docs/functions"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span></a></td> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.1.0</td> <td></td> </tr> <tr> <td><a href="/docs/cloud-messaging/android/client"><span class="notranslate">Cloud Messaging</span></a></td> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.1.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/storage/android/start"><span class="notranslate">Cloud Storage</span></a></td> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.1</td> <td></td> </tr> <tr> <td><a href="/docs/crashlytics/get-started?platform=android"><span class="notranslate">Crashlytics</span></a></td> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>19.4.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/dynamic-links/android/create"><span class="notranslate">Dynamic Links</span></a></td> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/docs/in-app-messaging"><span class="notranslate">In-App Messaging</span></a></td> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.1</td> <td><span class="compare-yes"></span><br><em>(required)</em></td> </tr> <tr> <td><a href="/docs/in-app-messaging"><span class="notranslate">In-App Messaging</span> Display</a></td> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.1</td> <td><span class="compare-yes"></span><br><em>(required)</em></td> </tr> <tr> <td><a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations</a></td> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span> Model Downloader API</a></td> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.1</td> <td></td> </tr> <tr> <td><a href="/docs/perf-mon/get-started-android"><span class="notranslate">Performance Monitoring</span></a></td> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.4</td> <td></td> </tr> <tr> <td><a href="/docs/database"><span class="notranslate">Realtime Database</span></a></td> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td></td> </tr> <tr> <td><a href="/docs/remote-config/get-started?platform=android"><span class="notranslate">Remote Config</span></a></td> <td>com.google.firebase:firebase-config-ktx</td> <td>22.1.0</td> <td><span class="compare-yes"></span></td> </tr> </table> </devsite-expandable> </td> </tr> <tr> <td colspan="4"> <devsite-expandable> <p class="showalways"><b>Firebase ML Kit libraries</b></p> <table> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span> Custom Model APIs</a></td> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span> Vision APIs</a></td> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: Image Labeling Model</a></td> <td>com.google.firebase:firebase-ml-vision-image-label-model</td> <td>20.0.2</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: Object Detection and Tracking Model</a></td> <td>com.google.firebase:firebase-ml-vision-object-detection-model</td> <td>19.0.6</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: Face Detection Model</a></td> <td>com.google.firebase:firebase-ml-vision-face-model</td> <td>20.0.2</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: Barcode Scanning Model</a></td> <td>com.google.firebase:firebase-ml-vision-barcode-model</td> <td>16.1.2</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: AutoML Vision Edge API</a></td> <td>com.google.firebase:firebase-ml-vision-automl</td> <td>18.0.6</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: Natural Language APIs</a></td> <td>com.google.firebase:firebase-ml-natural-language</td> <td>22.0.1</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: Language Identification Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-language-id-model</td> <td>20.0.8</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: Translate Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-translate-model</td> <td>20.0.9</td> <td></td> </tr> <tr> <td><a href="/docs/ml-kit"><span class="notranslate">Firebase ML</span>: Smart Reply Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-smart-reply-model</td> <td>20.0.8</td> <td></td> </tr> </table> </devsite-expandable> </td> </tr> </tbody> </table> <!-- load-bearing comment --> <h2 id="2025-02-06" data-text="Update - February 06, 2025" tabindex="-1">Update - February 06, 2025</h2> <h3 id="bom_v33-9-0" data-text="Firebase Android BoM (Bill of Materials) version 33.9.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.9.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version </p> <p> Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.8.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.9.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>22.2.0</td> <td>22.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>22.2.0</td> <td>22.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td><b>23.1.0</b></td> <td><b>23.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td><b>23.1.0</b></td> <td><b>23.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>19.4.0</td> <td>19.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>19.4.0</td> <td>19.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>19.4.0</td> <td>19.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td><b>25.1.1</b></td> <td><b>25.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td><b>25.1.1</b></td> <td><b>25.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.4</td> <td>21.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>21.0.4</td> <td>21.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-vertexai</b></td> <td><b>16.0.2</b></td> <td><b>16.1.0</b></td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v5-1-1" data-text="App Distribution Gradle plugin version 5.1.1" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 5.1.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed issue that caused the <code translate="no" dir="ltr">connectedDebugAndroidTest</code> task to fail.</p></li> <li><p><span class="release-changed"></span> Updated log statement to specify whether an upload resulted in a new release or an update to an existing release.</p></li> </ul> <h3 id="auth_v23-2-0" data-text="Authentication version 23.2.0" tabindex="-1"><span class="notranslate">Authentication</span> version 23.2.0</h3> <ul> <li><p><span class="release-feature"></span> Added an API to customize the <span class="notranslate">Firebase Hosting</span> link domain that is used in out-of-band email action flows.</p></li> <li><p><span class="release-deprecated"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/auth/ActionCodeSettings.Builder#getDynamicLinkDomain()"><code translate="no" dir="ltr">getDynamicLinkDomain</code></a> and <a href="/docs/reference/android/com/google/firebase/auth/ActionCodeSettings.Builder#setDynamicLinkDomain(java.lang.String)"><code translate="no" dir="ltr">setDynamicLinkDomain</code></a>. Instead, use <a href="/docs/reference/android/com/google/firebase/auth/ActionCodeSettings.Builder#getLinkDomain()"><code translate="no" dir="ltr">getLinkDomain</code></a> and <a href="/docs/reference/android/com/google/firebase/auth/ActionCodeSettings.Builder#setLinkDomain(java.lang.String)"><code translate="no" dir="ltr">setLinkDomain</code></a> to set a custom <span class="notranslate">Firebase Hosting</span> link domain.</p></li> <li><p><span class="release-changed"></span> Bumped the version of the reCAPTCHA Enterprise library dependency.</p></li> </ul> <h4 id="auth-ktx_v23-2-0" data-text="Authentication Kotlin extensions version 23.2.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 23.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v25-1-2" data-text="Cloud Firestore version 25.1.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 25.1.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a server and SDK mismatch in unicode string sorting. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6615" class="external">#6615</a> </p></li> <li><p><span class="release-feature"></span> The <code translate="no" dir="ltr">firebase-firestore</code> artifacts are now published with accompanying <code translate="no" dir="ltr">.asc</code> signature files to ensure authenticity. Optionally, you can <a href="https://docs.gradle.org/current/userguide/dependency_verification.html#sec:signature-verification" class="external">verify the signature and set up automatic dependency verification via Gradle</a>.</p></li> </ul> <h4 id="firestore-ktx_v25-1-2" data-text="Cloud Firestore Kotlin extensions version 25.1.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 25.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_gradle_plugin_v3-0-3" data-text="Crashlytics Gradle plugin version 3.0.3" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 3.0.3</h3> <ul> <li><span class="release-fixed"></span> Fixed symbol generation for Unity 6 symbols.</li> </ul> <h3 id="vertex-ai_v16-1-0" data-text="Vertex AI in Firebase version 16.1.0" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.1.0</h3> <ul> <li><p><span class="release-changed"></span> Internal improvements to correctly handle empty responses from models.</p></li> <li><p><span class="release-feature"></span> The <code translate="no" dir="ltr">firebase-vertexai</code> artifacts are now published with accompanying <code translate="no" dir="ltr">.asc</code> signature files to ensure authenticity. Optionally, you can <a href="https://docs.gradle.org/current/userguide/dependency_verification.html#sec:signature-verification" class="external">verify the signature and set up automatic dependency verification via Gradle</a>.</p></li> </ul> <h2 id="2025-01-16" data-text="Update - January 16, 2025" tabindex="-1">Update - January 16, 2025</h2> <h3 id="bom_v33-8-0" data-text="Firebase Android BoM (Bill of Materials) version 33.8.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.8.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.7.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.8.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>22.1.2</td> <td><b>22.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>22.1.2</td> <td><b>22.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>22.0.1</td> <td><b>22.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>22.0.1</td> <td><b>22.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>19.3.0</td> <td><b>19.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>19.3.0</td> <td><b>19.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>19.3.0</td> <td><b>19.4.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.1.1</td> <td>25.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.1.1</td> <td>25.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>21.0.3</td> <td><b>21.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>21.0.3</td> <td><b>21.0.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-vertexai</td> <td>16.0.2</td> <td>16.0.2</td> </tr> </tbody> </table> </section> <h3 id="analytics_v22-2-0" data-text="Analytics version 22.2.0" tabindex="-1"><span class="notranslate">Analytics</span> version 22.2.0</h3> <ul> <li><p><span class="release-fixed"></span> Addressed build issue caused by conflicting manifest value with Google Mobile Ads SDK.</p></li> <li><p><span class="release-fixed"></span> Fixed Activity object memory leak.</p></li> </ul> <h4 id="analytics-ktx_v22-2-0" data-text="Analytics Kotlin extensions version 22.2.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 22.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appdistro_gradle_plugin_v5-1-0" data-text="App Distribution Gradle plugin version 5.1.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 5.1.0</h3> <ul> <li><p><span class="release-changed"></span> Updated dependencies to the latest versions.</p></li> <li><p><span class="release-changed"></span> Changed task creation to be done lazily with <code translate="no" dir="ltr">TaskContainer.register</code> instead of <code translate="no" dir="ltr">TaskContainer.create</code>.</p></li> <li><p><span class="release-feature"></span> Added support for <code translate="no" dir="ltr">testCases</code> and <code translate="no" dir="ltr">testCasesFile</code> parameters.</p></li> <li><p><span class="release-changed"></span> Decreased the amount of statements being logged above the <code translate="no" dir="ltr">LIFECYCLE</code> level. To see all statements, use command line switches to run commands at the <code translate="no" dir="ltr">INFO</code> or <code translate="no" dir="ltr">DEBUG</code> level.</p></li> </ul> <h3 id="crashlytics_v19-4-0" data-text="Crashlytics version 19.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.4.0</h3> <ul> <li><span class="release-feature"></span> Added an overload for <a href="/docs/reference/kotlin/com/google/firebase/crashlytics/FirebaseCrashlytics#recordException(java.lang.Throwable)"><code translate="no" dir="ltr">recordException</code></a> that allows logging event specific custom keys. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/3551" class="external">#3551</a> </li> </ul> <h4 id="crashlytics-ktx_v19-4-0" data-text="Crashlytics Kotlin extensions version 19.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-4-0" data-text="Crashlytics NDK version 19.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.4.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v19.4.0</li> </ul> <h3 id="data-connect_v16-0-0-beta04" data-text="Data Connect version 16.0.0-beta04" tabindex="-1"><span class="notranslate">Data Connect</span> version 16.0.0-beta04</h3> <ul> <li><span class="release-changed"></span> Changed <code translate="no" dir="ltr">FirebaseDataConnect.logLevel</code> type from <code translate="no" dir="ltr">LogLevel</code> to <code translate="no" dir="ltr">MutableStateFlow&lt;LogLevel&gt;</code>. This enables apps to &quot;collect&quot; the flow to, for example, update a UI component when the log level changes. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6586" class="external">#6586</a>)</li> </ul> <h3 id="performance_v21-0-4" data-text="Performance Monitoring version 21.0.4" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 21.0.4</h3> <ul> <li><span class="release-fixed"></span> Fixed a performance issue with shared preferences calling <code translate="no" dir="ltr">.apply()</code> every time a value is read from <span class="notranslate">Remote Config</span>. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6407" class="external">#6407</a> </li> </ul> <h4 id="performance-ktx_v21-0-4" data-text="Performance Monitoring Kotlin extensions version 21.0.4" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 21.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-perf</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v22-1-0" data-text="Remote Config version 22.1.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 22.1.0</h3> <ul> <li><span class="release-feature"></span> Added support for custom signal targeting in <span class="notranslate">Remote Config</span>. Use the <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setCustomSignals(com.google.firebase.remoteconfig.CustomSignals)"><code translate="no" dir="ltr">setCustomSignals</code></a> API for setting custom signals to build custom targeting conditions in <span class="notranslate">Remote Config</span>.</li> </ul> <h4 id="remote-config-ktx_v22-1-0" data-text="Remote Config Kotlin extensions version 22.1.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 22.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2024-12-05" data-text="Update - December 05, 2024" tabindex="-1">Update - December 05, 2024</h2> <h3 id="bom_v33-7-0" data-text="Firebase Android BoM (Bill of Materials) version 33.7.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.7.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.6.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.7.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.1</td> <td>22.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.1</td> <td>22.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>19.2.1</td> <td><b>19.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>19.2.1</td> <td><b>19.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>19.2.1</td> <td><b>19.3.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.1.1</td> <td>25.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.1.1</td> <td>25.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>21.0.2</td> <td><b>21.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>21.0.2</td> <td><b>21.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-vertexai</td> <td>16.0.2</td> <td>16.0.2</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v19-3-0" data-text="Crashlytics version 19.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.3.0</h3> <ul> <li><p><span class="release-fixed"></span> Fixed inefficiency in the Kotlin <code translate="no" dir="ltr">FirebaseCrashlytics.setCustomKeys</code> extension, and deprecated redundant <code translate="no" dir="ltr">KeyValueBuilder</code> constructor.</p></li> <li><p><span class="release-fixed"></span> Moved execution of failure listener to outside the main thread. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6535" class="external">#6535</a> </p></li> </ul> <h4 id="crashlytics-ktx_v19-3-0" data-text="Crashlytics Kotlin extensions version 19.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-3-0" data-text="Crashlytics NDK version 19.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.3.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v19.3.0</li> </ul> <h3 id="performance_v21-0-3" data-text="Performance Monitoring version 21.0.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 21.0.3</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h4 id="performance-ktx_v21-0-3" data-text="Performance Monitoring Kotlin extensions version 21.0.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 21.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-perf</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2024-11-15" data-text="Update - November 15, 2024" tabindex="-1">Update - November 15, 2024</h2> <h3 id="bom_v33-6-0" data-text="Firebase Android BoM (Bill of Materials) version 33.6.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.6.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.5.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.6.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.1</td> <td>22.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.1</td> <td>22.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.1.1</td> <td>25.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.1.1</td> <td>25.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>21.0.0</td> <td><b>21.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>21.0.0</td> <td><b>21.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>24.0.3</td> <td><b>24.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>24.0.3</td> <td><b>24.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>24.0.3</td> <td><b>24.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-vertexai</b></td> <td>16.0.1</td> <td><b>16.0.2</b></td> </tr> </tbody> </table> </section> <h3 id="data-connect_v16-0-0-beta03" data-text="Data Connect version 16.0.0-beta03" tabindex="-1"><span class="notranslate">Data Connect</span> version 16.0.0-beta03</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking Change:</strong> Increased the minimum supported version of the <span class="notranslate">Data Connect</span> local toolkit for code generation to v1.7.0, which is included with <a href="//github.com/firebase/firebase-tools/releases/tag/v13.25.0" class="external">firebase-tools v13.25.0</a>.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change:</strong> Replaced <code translate="no" dir="ltr">java.util.Date</code> with <code translate="no" dir="ltr">com.google.firebase.dataconnect.LocalDate</code> for GraphQL <code translate="no" dir="ltr">Date</code> variables and fields. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6434" class="external">#6434</a>)</p></li> <li><p><span class="release-feature"></span> Added <code translate="no" dir="ltr">copy()</code>, <code translate="no" dir="ltr">withDataDeserializer()</code>, and <code translate="no" dir="ltr">withVariablesSerializer()</code> functions to <code translate="no" dir="ltr">QueryRef</code>, <code translate="no" dir="ltr">MutationRef</code>, <code translate="no" dir="ltr">GeneratedQuery</code> and <code translate="no" dir="ltr">GeneratedMutation</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6424" class="external">#6424</a>)</p></li> <li><p><span class="release-feature"></span> Added <code translate="no" dir="ltr">copy()</code>, <code translate="no" dir="ltr">operations()</code>, <code translate="no" dir="ltr">queries()</code> and <code translate="no" dir="ltr">mutations()</code> functions to <code translate="no" dir="ltr">GeneratedConnector</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6424" class="external">#6424</a>)</p></li> <li><p><span class="release-changed"></span> Changed <code translate="no" dir="ltr">GeneratedConnector</code>, <code translate="no" dir="ltr">GeneratedQuery</code>, and <code translate="no" dir="ltr">GeneratedMutation</code> to now require the implementation of <code translate="no" dir="ltr">equals()</code> to be a <em>logical</em> comparison, rather than just checking for <em>referencial</em> equality using the <code translate="no" dir="ltr">===</code> operator. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6424" class="external">#6424</a>)</p></li> <li><p><span class="release-feature"></span> Added <code translate="no" dir="ltr">ExperimentalFirebaseDataConnect</code> annotation, and some APIs have been annotated with it. Applications that make use of these experimental APIs must opt-in by using <code translate="no" dir="ltr">@OptIn(ExperimentalFirebaseDataConnect::class)</code> to suppress warnings or errors related to using these experimental APIs. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6424" class="external">#6424</a>) and (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6433" class="external">#6433</a>)</p></li> </ul> <h3 id="functions-client_v21-1-0" data-text="Cloud Functions for Firebase Client SDK version 21.1.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 21.1.0</h3> <ul> <li><span class="release-changed"></span> Converted the <span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> to Kotlin.</li> </ul> <h4 id="functions-client-ktx_v21-1-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 21.1.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 21.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v24-1-0" data-text="Cloud Messaging version 24.1.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 24.1.0</h3> <ul> <li><p><span class="release-deprecated"></span> Deprecated additional FCM upstream messaging methods and updated all upstream methods to indicate they are now decommissioned. For more information about this decommissioning, see the <a href="https://firebase.google.com/support/faq#fcm-23-deprecation">FAQ</a>.</p></li> <li><p><span class="release-changed"></span> Changed the configuration of <code translate="no" dir="ltr">ScheduledThreadPoolExecutor</code> for <code translate="no" dir="ltr">WithinAppServiceConnection</code> to allow the thread to stop polling after the timeout task has been canceled.</p></li> </ul> <h4 id="messaging-ktx_v24-1-0" data-text="Cloud Messaging Kotlin extensions version 24.1.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 24.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v24-1-0" data-text="Cloud Messaging Direct Boot version 24.1.0" tabindex="-1">Cloud Messaging Direct Boot version 24.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v24-1-0"><span class="notranslate">Cloud Messaging</span> v24.1.0 release notes</a>.</li> </ul> <h3 id="vertex-ai_v16-0-2" data-text="Vertex AI in Firebase version 16.0.2" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.2</h3> <ul> <li><p><span class="release-fixed"></span> Improved error message when using an invalid location. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6428" class="external">#6428</a> </p></li> <li><p><span class="release-fixed"></span> Fixed issue where <span class="notranslate">Firebase App Check</span> error tokens were unintentionally missing from the requests. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6409" class="external">#6409</a> </p></li> <li><p><span class="release-fixed"></span> Clarified in the reference documentation that <code translate="no" dir="ltr">Schema.integer</code> and <code translate="no" dir="ltr">Schema.float</code> only provide hints to the model. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6420" class="external">#6420</a> </p></li> <li><p><span class="release-fixed"></span> Fixed issue were <code translate="no" dir="ltr">Schema.double</code> set the format parameter in <code translate="no" dir="ltr">Schema</code>. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6432" class="external">#6432</a> </p></li> </ul> <h2 id="2024-10-23" data-text="Update - October 23, 2024" tabindex="-1">Update - October 23, 2024</h2> <h3 id="bom_v33-5-1" data-text="Firebase Android BoM (Bill of Materials) version 33.5.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.5.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.5.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.5.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.1</td> <td>22.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.1</td> <td>22.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.1.1</td> <td>25.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.1.1</td> <td>25.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.1</td> <td>25.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-vertexai</b></td> <td>16.0.0</td> <td><b>16.0.1</b></td> </tr> </tbody> </table> </section> <h3 id="vertex-ai_v16-0-1" data-text="Vertex AI in Firebase version 16.0.1" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed issue where authorization headers weren&#39;t correctly formatted and were ignored by the backend. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6400" class="external">#6400</a> </li> </ul> <h2 id="2024-10-21" data-text="Update - October 21, 2024" tabindex="-1">Update - October 21, 2024</h2> <h3 id="bom_v33-5-0" data-text="Firebase Android BoM (Bill of Materials) version 33.5.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.5.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.4.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.5.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>23.0.0</td> <td><b>23.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>23.0.0</td> <td><b>23.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>22.0.0</td> <td><b>22.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>22.0.0</td> <td><b>22.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>19.2.0</td> <td><b>19.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>19.2.0</td> <td><b>19.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>19.2.0</td> <td><b>19.2.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>25.1.0</td> <td><b>25.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>25.1.0</td> <td><b>25.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>24.0.2</td> <td><b>24.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>24.0.2</td> <td><b>24.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>24.0.2</td> <td><b>24.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>25.0.0</td> <td><b>25.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>25.0.0</td> <td><b>25.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>21.0.1</td> <td><b>21.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>21.0.1</td> <td><b>21.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-vertexai</b></td> <td>N/A</td> <td><b>16.0.0</b></td> </tr> </tbody> </table> </section> <h3 id="auth_v23-1-0" data-text="Authentication version 23.1.0" tabindex="-1"><span class="notranslate">Authentication</span> version 23.1.0</h3> <ul> <li><span class="release-feature"></span> Added reCAPTCHA Enterprise support for app verification during phone authentication for <span class="notranslate">Firebase Authentication</span>. The feature will be available for use starting October 24, 2024.</li> </ul> <h4 id="auth-ktx_v23-1-0" data-text="Authentication Kotlin extensions version 23.1.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 23.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v25-1-1" data-text="Cloud Firestore version 25.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 25.1.1</h3> <ul> <li><p><span class="release-changed"></span> Updated <span class="notranslate">Cloud Firestore</span> proto definitions. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6369" class="external">#6369</a>)</p></li> <li><p><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</p></li> </ul> <h4 id="firestore-ktx_v25-1-1" data-text="Cloud Firestore Kotlin extensions version 25.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 25.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v24-0-3" data-text="Cloud Messaging version 24.0.3" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 24.0.3</h3> <ul> <li><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</li> </ul> <h4 id="messaging-ktx_v24-0-3" data-text="Cloud Messaging Kotlin extensions version 24.0.3" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 24.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v24-0-3" data-text="Cloud Messaging Direct Boot version 24.0.3" tabindex="-1">Cloud Messaging Direct Boot version 24.0.3</h3> <ul> <li><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</li> </ul> <h3 id="crashlytics_v19-2-1" data-text="Crashlytics version 19.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.2.1</h3> <ul> <li><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</li> </ul> <h4 id="crashlytics-ktx_v19-2-1" data-text="Crashlytics Kotlin extensions version 19.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-2-1" data-text="Crashlytics NDK version 19.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.2.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v19.2.1</li> </ul> <h3 id="data-connect_v16-0-0-beta02" data-text="Data Connect version 16.0.0-beta02" tabindex="-1"><span class="notranslate">Data Connect</span> version 16.0.0-beta02</h3> <ul> <li><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</li> </ul> <h3 id="firebaseml-modeldownloader_v25-0-1" data-text="Firebase ML version 25.0.1" tabindex="-1"><span class="notranslate">Firebase ML</span> version 25.0.1</h3> <ul> <li><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v25-0-1" data-text="Firebase ML Kotlin extensions version 25.0.1" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 25.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v21-0-1" data-text="In-App Messaging version 21.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 21.0.1</h3> <ul> <li><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</li> </ul> <h4 id="inappmessaging-ktx_v21-0-1" data-text="In-App Messaging Kotlin extensions version 21.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 21.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v21-0-1" data-text="In-App Messaging Display version 21.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 21.0.1</h3> <ul> <li><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</li> </ul> <h4 id="inappmessaging-display-ktx_v21-0-1" data-text="In-App Messaging Display Kotlin extensions version 21.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 21.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v21-0-2" data-text="Performance Monitoring version 21.0.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 21.0.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">IllegalStateException</code> that happened when starting a trace before Firebase initializes.</p></li> <li><p><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</p></li> </ul> <h4 id="performance-ktx_v21-0-2" data-text="Performance Monitoring Kotlin extensions version 21.0.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 21.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-perf</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v22-0-1" data-text="Remote Config version 22.0.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 22.0.1</h3> <ul> <li><span class="release-changed"></span> Updated protobuf dependency to <code translate="no" dir="ltr">3.25.5</code> to fix <a href="//nvd.nist.gov/vuln/detail/CVE-2024-7254" class="external">CVE-2024-7254</a>.</li> </ul> <h4 id="remote-config-ktx_v22-0-1" data-text="Remote Config Kotlin extensions version 22.0.1" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 22.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="vertex-ai_v16-0-0" data-text="Vertex AI in Firebase version 16.0.0" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.0</h3> <ul> <li><p><span class="release-feature"></span> <span class="notranslate">Vertex&nbsp;AI in Firebase</span> is now Generally Available (GA) and can be used in production apps.</p> <p>Use the <span class="notranslate">Vertex&nbsp;AI in Firebase</span>&nbsp;SDK to call the <span class="notranslate"><span class="notranslate">Vertex&nbsp;AI</span> Gemini&nbsp;API</span> directly from your app. This client SDK is built specifically for use with Android apps, offering security options against unauthorized clients as well as integrations with other Firebase services.</p> <ul> <li><p>If you&#39;re new to this library, visit the <a href="/docs/vertex-ai/get-started?platform=android">getting started guide</a>.</p></li> <li><p>If you were using the preview version of the library, visit the <a href="/docs/vertex-ai/migrate-to-ga?platform=android">migration guide</a> to learn about some important updates.</p></li> </ul></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Changed <code translate="no" dir="ltr">functionCallingConfig</code> parameter type to be nullable in <code translate="no" dir="ltr">ToolConfig</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6373" class="external">#6373</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Removed <code translate="no" dir="ltr">functionResponse</code> accessor method from <code translate="no" dir="ltr">GenerateContentResponse</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6373" class="external">#6373</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Migrated <code translate="no" dir="ltr">FirebaseVertexAIException</code> from a sealed class to an abstract class, and marked constructors as internal. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6368" class="external">#6368</a>)</p></li> <li><p><span class="release-feature"></span> Added support for <code translate="no" dir="ltr">title</code> and <code translate="no" dir="ltr">publicationDate</code> in citations. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6309" class="external">#6309</a>)</p></li> <li><p><span class="release-feature"></span> Added support for <code translate="no" dir="ltr">frequencyPenalty</code>, <code translate="no" dir="ltr">presencePenalty</code>, and <code translate="no" dir="ltr">HarmBlockMethod</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6309" class="external">#6309</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Introduced <code translate="no" dir="ltr">Citations</code> class. Now <code translate="no" dir="ltr">CitationMetadata</code> wraps that type. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6276" class="external">#6276</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Reworked <code translate="no" dir="ltr">Schema</code> declaration mechanism. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6258" class="external">#6258</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Reworked function calling mechanism to use the new <code translate="no" dir="ltr">Schema</code> format. Function calls no longer use native types, nor include references to the actual executable code. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6258" class="external">#6258</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Made <code translate="no" dir="ltr">totalBillableCharacters</code> field in <code translate="no" dir="ltr">CountTokens</code> nullable and optional. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6294" class="external">#6294</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Removed <code translate="no" dir="ltr">UNKNOWN</code> option for the <code translate="no" dir="ltr">HarmBlockThreshold</code> enum. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6294" class="external">#6294</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Removed <code translate="no" dir="ltr">UNSPECIFIED</code> option for the <code translate="no" dir="ltr">HarmBlockThreshold</code>, <code translate="no" dir="ltr">HarmProbability</code>, <code translate="no" dir="ltr">HarmSeverity</code>, and <code translate="no" dir="ltr">BlockReason</code> enums. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6294" class="external">#6294</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Renamed <code translate="no" dir="ltr">BlockThreshold</code> as <code translate="no" dir="ltr">HarmBlockThreshold</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6262" class="external">#6262</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Renamed all types and methods starting with <code translate="no" dir="ltr">blob</code> to start with <code translate="no" dir="ltr">inlineData</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6309" class="external">#6309</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Changed the order of arguments in <code translate="no" dir="ltr">InlineDataPart</code> to match <code translate="no" dir="ltr">ImagePart</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6340" class="external">#6340</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Changed <code translate="no" dir="ltr">RequestOption</code> to accept only <code translate="no" dir="ltr">long</code> timeout values. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6289" class="external">#6289</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Moved <code translate="no" dir="ltr">requestOptions</code> to the last positional argument in the <code translate="no" dir="ltr">generativeModel</code> argument list. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6292" class="external">#6292</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Replaced sealed classes with abstract classes for <code translate="no" dir="ltr">StringFormat</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6334" class="external">#6334</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Refactored enum classes to be normal classes. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6340" class="external">#6340</a>)</p></li> <li><p><span class="release-changed"></span> <strong>Breaking Change</strong>: Marked <code translate="no" dir="ltr">GenerativeModel</code> properties as private. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6309" class="external">#6309</a>)</p></li> </ul> <h2 id="2024-10-01" data-text="Update - October 01, 2024" tabindex="-1">Update - October 01, 2024</h2> <h3 id="bom_v33-4-0" data-text="Firebase Android BoM (Bill of Materials) version 33.4.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.4.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.3.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.4.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>22.1.0</td> <td><b>22.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>22.1.0</td> <td><b>22.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>19.1.0</td> <td><b>19.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>19.1.0</td> <td><b>19.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>19.1.0</td> <td><b>19.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.1.0</td> <td>25.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.1.0</td> <td>25.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>24.0.1</td> <td><b>24.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>24.0.1</td> <td><b>24.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>24.0.1</td> <td><b>24.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> </tbody> </table> </section> <h3 id="analytics_v22-1-2" data-text="Analytics version 22.1.2" tabindex="-1"><span class="notranslate">Analytics</span> version 22.1.2</h3> <ul> <li><p><span class="release-fixed"></span> Addressed vulnerability <a href="https://nvd.nist.gov/vuln/detail/CVE-2024-7254">CVE-2024-7254</a>.</p></li> <li><p><span class="release-changed"></span> Introduced a new class, <a href="/docs/reference/kotlin/com/google/firebase/analytics/GoogleAnalyticsServerPreviewActivity"><code translate="no" dir="ltr">GoogleAnalyticsServerPreviewActivity</code></a>, which supports debugging for server-side Google Tag Manager. This class is not yet publicly available; it&#39;s currently only available to allow listed early access customers.</p></li> </ul> <h4 id="analytics-ktx_v22-1-2" data-text="Analytics Kotlin extensions version 22.1.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 22.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v24-0-2" data-text="Cloud Messaging version 24.0.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 24.0.2</h3> <ul> <li><span class="release-changed"></span> Included message priority when logging to <code translate="no" dir="ltr">firebase-datatransport</code>.</li> </ul> <h4 id="messaging-ktx_v24-0-2" data-text="Cloud Messaging Kotlin extensions version 24.0.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 24.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v24-0-2" data-text="Cloud Messaging Direct Boot version 24.0.2" tabindex="-1">Cloud Messaging Direct Boot version 24.0.2</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v24-0-2"><span class="notranslate">Cloud Messaging</span> v24.0.2 release notes</a>.</li> </ul> <h3 id="storage_v21-0-1" data-text="Cloud Storage for Firebase version 21.0.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 21.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where the <code translate="no" dir="ltr">maxUploadRetryTimeMillis</code> parameter is ignored when uploading files using <code translate="no" dir="ltr">putBytes()</code>.</li> </ul> <h4 id="storage-ktx_v21-0-1" data-text="Cloud Storage for Firebase Kotlin extensions version 21.0.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 21.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v19-2-0" data-text="Crashlytics version 19.2.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.2.0</h3> <ul> <li><p><span class="release-fixed"></span> Improved data consistency for rapid user actions.</p></li> <li><p><span class="release-fixed"></span> Fixed exception propagation in the case of no default uncaught exception handler.</p></li> <li><p><span class="release-changed"></span> Internal changes to improve startup time.</p></li> <li><p><span class="release-changed"></span> Internal changes to the way background tasks are scheduled.</p></li> <li><p><span class="release-changed"></span> Migrated SDK to use standard Firebase executors.</p></li> </ul> <h4 id="crashlytics-ktx_v19-2-0" data-text="Crashlytics Kotlin extensions version 19.2.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-2-0" data-text="Crashlytics NDK version 19.2.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.2.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v19.2.0</li> </ul> <h3 id="data-connect_v16-0-0-beta01" data-text="Data Connect version 16.0.0-beta01" tabindex="-1"><span class="notranslate">Data Connect</span> version 16.0.0-beta01</h3> <ul> <li><span class="release-feature"></span> Initial beta release of the <span class="notranslate">Firebase Data Connect</span> SDK. Learn how to <a href="/docs/data-connect/android-sdk">get started</a> with the SDK in your app.</li> </ul> <h3 id="vertex-ai_v16-0-0-beta06" data-text="Vertex AI in Firebase version 16.0.0-beta06" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.0-beta06</h3> <ul> <li><span class="release-fixed"></span> Fixed Proguard consumer rules for serialization.</li> </ul> <h2 id="2024-09-12" data-text="Update - September 12, 2024" tabindex="-1">Update - September 12, 2024</h2> <h3 id="bom_v33-3-0" data-text="Firebase Android BoM (Bill of Materials) version 33.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.2.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.3.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>19.0.3</td> <td><b>19.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>19.0.3</td> <td><b>19.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>19.0.3</td> <td><b>19.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.1.0</td> <td>25.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.1.0</td> <td>25.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.0</td> <td>21.0.0</td> </tr> </tbody> </table> </section> <h3 id="app-distro_v16-0-0-beta14" data-text="App Distribution version 16.0.0-beta14" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta14</h3> <ul> <li><span class="release-changed"></span> Internal improvements to testing on Android 14.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta14" data-text="App Distribution API version 16.0.0-beta14" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta14</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">App Distribution</span> library.</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta14" data-text="App Distribution API Kotlin extensions version 16.0.0-beta14" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta14</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v19-1-0" data-text="Crashlytics version 19.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">isCrashlyticsCollectionEnabled</code> API to check if <span class="notranslate">Crashlytics</span> data collection is enabled. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5919" class="external">#5919</a>)</p></li> <li><p><span class="release-fixed"></span> Ensure that on-demand fatal events are never processed on the main thread. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4345" class="external">#4345</a>)</p></li> <li><p><span class="release-changed"></span> Internal changes to the way session IDs are generated.</p></li> </ul> <h4 id="crashlytics-ktx_v19-1-0" data-text="Crashlytics Kotlin extensions version 19.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-1-0" data-text="Crashlytics NDK version 19.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.1.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v19.1.0</li> </ul> <h3 id="vertex-ai_v16-0-0-beta05" data-text="Vertex AI in Firebase version 16.0.0-beta05" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.0-beta05</h3> <ul> <li><p><span class="release-changed"></span> Merged core networking code into the <span class="notranslate">Vertex&nbsp;AI in Firebase</span> SDK from a separate library.</p></li> <li><p><span class="release-feature"></span> Added support for <code translate="no" dir="ltr">responseSchema</code> in <code translate="no" dir="ltr">GenerationConfig</code>.</p></li> </ul> <h2 id="2024-08-22" data-text="Update - August 22, 2024" tabindex="-1">Update - August 22, 2024</h2> <h3 id="bom_v33-2-0" data-text="Firebase Android BoM (Bill of Materials) version 33.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.1.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.2.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>22.0.2</td> <td><b>22.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>22.0.2</td> <td><b>22.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>19.0.3</td> <td>19.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>19.0.3</td> <td>19.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>19.0.3</td> <td>19.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>25.0.0</td> <td><b>25.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>25.0.0</td> <td><b>25.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>24.0.0</td> <td><b>24.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>24.0.0</td> <td><b>24.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>24.0.0</td> <td><b>24.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.0</td> <td>21.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v22-1-0" data-text="Analytics version 22.1.0" tabindex="-1"><span class="notranslate">Analytics</span> version 22.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to optimize ad conversion modeling capabilities.</li> </ul> <h4 id="analytics-ktx_v22-1-0" data-text="Analytics Kotlin extensions version 22.1.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 22.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v25-1-0" data-text="Cloud Firestore version 25.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 25.1.0</h3> <ul> <li><span class="release-feature"></span> Add support for the <code translate="no" dir="ltr">VectorValue</code> type. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/6154" class="external">#6154</a> </li> </ul> <h4 id="firestore-ktx_v25-1-0" data-text="Cloud Firestore Kotlin extensions version 25.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 25.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v24-0-1" data-text="Cloud Messaging version 24.0.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 24.0.1</h3> <ul> <li><p><span class="release-changed"></span> Added topic subscribe/unsubscribe retry operations with exponential backoff if they hit a quota error.</p></li> <li><p><span class="release-changed"></span> Added a check for <code translate="no" dir="ltr">notification_open</code> duplicate logging based on message ID instead of the Activity&#39;s Intent.</p></li> </ul> <h4 id="messaging-ktx_v24-0-1" data-text="Cloud Messaging Kotlin extensions version 24.0.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 24.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v24-0-1" data-text="Cloud Messaging Direct Boot version 24.0.1" tabindex="-1">Cloud Messaging Direct Boot version 24.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v24-0-1"><span class="notranslate">Cloud Messaging</span> v24.0.1 release notes</a>.</li> </ul> <h2 id="2024-08-01" data-text="Update - August 01, 2024" tabindex="-1">Update - August 01, 2024</h2> <h3 id="vertex-ai_v16-0-0-beta04" data-text="Vertex AI in Firebase version 16.0.0-beta04" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.0-beta04</h3> <ul> <li><span class="release-feature"></span> Added support for <code translate="no" dir="ltr">responseSchema</code> in <code translate="no" dir="ltr">GenerationConfig</code>.</li> </ul> <h2 id="2024-07-11" data-text="Update - July 11, 2024" tabindex="-1">Update - July 11, 2024</h2> <h3 id="bom_v33-1-2" data-text="Firebase Android BoM (Bill of Materials) version 33.1.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.1.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.1.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.1.2</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>22.0.2</td> <td>22.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>22.0.2</td> <td>22.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>19.0.2</td> <td><b>19.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>19.0.2</td> <td><b>19.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>19.0.2</td> <td><b>19.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.0</td> <td>21.0.0</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v19-0-3" data-text="Crashlytics version 19.0.3" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.0.3</h3> <ul> <li><span class="release-changed"></span> Updated the internal file system to handle long file names.</li> </ul> <h4 id="crashlytics-ktx_v19-0-3" data-text="Crashlytics Kotlin extensions version 19.0.3" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-0-3" data-text="Crashlytics NDK version 19.0.3" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.0.3</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v19.0.3</li> </ul> <h3 id="vertex-ai_v16-0-0-beta03" data-text="Vertex AI in Firebase version 16.0.0-beta03" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.0-beta03</h3> <ul> <li><p><span class="release-changed"></span> <strong>BREAKING CHANGE</strong>: Changed <code translate="no" dir="ltr">Schema.int</code> to return 32-bit integers instead of 64-bit (long).</p></li> <li><p><span class="release-changed"></span> Added <code translate="no" dir="ltr">Schema.long</code> to return 64-bit integer numbers.</p></li> <li><p><span class="release-changed"></span> Added <code translate="no" dir="ltr">Schema.double</code> to handle floating point numbers.</p></li> <li><p><span class="release-deprecated"></span> Marked <code translate="no" dir="ltr">Schema.num</code> as deprecated. Instead, use <code translate="no" dir="ltr">Schema.double</code>.</p></li> </ul> <h2 id="2024-06-20" data-text="Update - June 20, 2024" tabindex="-1">Update - June 20, 2024</h2> <h3 id="bom_v33-1-1" data-text="Firebase Android BoM (Bill of Materials) version 33.1.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.1.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.1.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.1.1</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>22.0.1</td> <td><b>22.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>22.0.1</td> <td><b>22.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>19.0.1</td> <td><b>19.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>19.0.1</td> <td><b>19.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>19.0.1</td> <td><b>19.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>22.1.0</td> <td>22.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.0</td> <td>21.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v22-0-2" data-text="Analytics version 22.0.2" tabindex="-1"><span class="notranslate">Analytics</span> version 22.0.2</h3> <ul> <li><span class="release-feature"></span> Added a new <a href="https://developers.google.com/tag-platform/security/guides/app-consent?consentmode=basic&amp;platform=android#default-consent">default consent state</a> (&quot;eu_consent_policy&quot;) for <code translate="no" dir="ltr">ad_user_data</code> and <code translate="no" dir="ltr">ad_personalization</code> consent types.</li> </ul> <h4 id="analytics-ktx_v22-0-2" data-text="Analytics Kotlin extensions version 22.0.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 22.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v19-0-2" data-text="Crashlytics version 19.0.2" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.0.2</h3> <ul> <li><span class="release-changed"></span> Changed the caught exception type to fail safely on any exception type.</li> </ul> <h4 id="crashlytics-ktx_v19-0-2" data-text="Crashlytics Kotlin extensions version 19.0.2" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-0-2" data-text="Crashlytics NDK version 19.0.2" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.0.2</h3> <ul> <li><span class="release-changed"></span> Updated the <span class="notranslate">Crashlytics</span> NDK to support 16 kb page sizes.</li> </ul> <h3 id="crashlytics_gradle_plugin_v3-0-2" data-text="Crashlytics Gradle plugin version 3.0.2" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 3.0.2</h3> <ul> <li><span class="release-fixed"></span> Fixed issue in generate symbol task preventing config caching.</li> <li><span class="release-fixed"></span> Fixed compatibility issue with Intel-based Macs.</li> </ul> <h3 id="vertex-ai_v16-0-0-beta02" data-text="Vertex AI in Firebase version 16.0.0-beta02" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.0-beta02</h3> <ul> <li><span class="release-feature"></span> Added support for specifying the <code translate="no" dir="ltr">responseMimeType</code> in <code translate="no" dir="ltr">GenerationConfig</code>.</li> <li><span class="release-changed"></span> Renamed <code translate="no" dir="ltr">GoogleGenerativeAIException</code> to <code translate="no" dir="ltr">FirebaseVertexAIException</code>.</li> <li><span class="release-changed"></span> Updated the Kotlin docs for various classes and functions.</li> <li><span class="release-fixed"></span> Fixed an issue with decoding JSON literals. (GitHub <a href="https://github.com/firebase/firebase-android-sdk/issues/6028" class="external">Issue #6028</a>)</li> </ul> <h2 id="2024-05-30" data-text="Update - May 30, 2024" tabindex="-1">Update - May 30, 2024</h2> <h3 id="bom_v33-1-0" data-text="Firebase Android BoM (Bill of Materials) version 33.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v33.0.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.1.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>22.0.0</td> <td><b>22.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>22.0.0</td> <td><b>22.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>19.0.0</td> <td><b>19.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>19.0.0</td> <td><b>19.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>19.0.0</td> <td><b>19.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>22.0.0</td> <td><b>22.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>22.0.0</td> <td><b>22.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>25.0.0</td> <td>25.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>21.0.0</td> <td>21.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v22-0-1" data-text="Analytics version 22.0.1" tabindex="-1"><span class="notranslate">Analytics</span> version 22.0.1</h3> <ul> <li><p><span class="release-changed"></span> Transitioning either <code translate="no" dir="ltr">analytics_storage</code> or <code translate="no" dir="ltr">ads_storage</code> consent to <code translate="no" dir="ltr">denied</code> no longer resets analytics. To reset analytics, use <a href="/docs/reference/kotlin/com/google/firebase/analytics/FirebaseAnalytics#resetAnalyticsData()"><code translate="no" dir="ltr">resetAnalyticsData()</code></a>.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue preventing Google Analytics 360 properties from sending longer parameter values.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue impacting measurement of engagement times for both manual and automatic screen view tracking.</p></li> </ul> <h4 id="analytics-ktx_v22-0-1" data-text="Analytics Kotlin extensions version 22.0.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 22.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="app-distro_v16-0-0-beta13" data-text="App Distribution version 16.0.0-beta13" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta13</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h3 id="app-distro-api_v16-0-0-beta13" data-text="App Distribution API version 16.0.0-beta13" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta13</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta13" data-text="App Distribution API Kotlin extensions version 16.0.0-beta13" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta13</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v19-0-1" data-text="Crashlytics version 19.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.0.1</h3> <ul> <li><p><span class="release-changed"></span> Improved cold initialization time.</p></li> <li><p><span class="release-fixed"></span> Fixed version compatibility issues with other Firebase libraries.</p></li> </ul> <h4 id="crashlytics-ktx_v19-0-1" data-text="Crashlytics Kotlin extensions version 19.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-0-1" data-text="Crashlytics NDK version 19.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.0.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v19.0.1</li> </ul> <h3 id="dynamic-links_v22-1-0" data-text="Dynamic Links version 22.1.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 22.1.0</h3> <ul> <li><span class="release-deprecated"></span> <span class="notranslate">Dynamic Links</span> is deprecated. For information about timelines and alternatives, see the <a href="/support/dynamic-links-faq"><span class="notranslate">Dynamic Links</span> deprecation FAQ</a>.</li> </ul> <h4 id="dynamic-links-ktx_v22-1-0" data-text="Dynamic Links Kotlin extensions version 22.1.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 22.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v21-0-1" data-text="Performance Monitoring version 21.0.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 21.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an <code translate="no" dir="ltr">ExceptionInInitializerError</code> where the <code translate="no" dir="ltr">url.openStream()</code> causes a crash if <span class="notranslate">Performance Monitoring</span> isn&#39;t yet initialized. (GitHub <a href="https://github.com/firebase/firebase-android-sdk/issues/5584" class="external">#5584</a>).</li> </ul> <h4 id="performance-ktx_v21-0-1" data-text="Performance Monitoring Kotlin extensions version 21.0.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 21.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="google-services_plugin_v4-4-2" data-text="google-services plugin 4.4.2" tabindex="-1">google-services plugin 4.4.2</h3> <ul> <li id="2024-05-13"><span class="release-fixed"></span> Integration with the <span class="notranslate">Crashlytics</span> Gradle plugin is now aware of variants. (GitHub <a href="https://github.com/google/play-services-plugins/pull/293" class="external">#293</a>) ## Update - May 13, 2024</li> </ul> <h3 id="crashlytics_gradle_plugin_v3-0-1" data-text="Crashlytics Gradle plugin version 3.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 3.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an incompatibility between <span class="notranslate">Crashlytics</span> and <code translate="no" dir="ltr">viewBinder</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5925" class="external">Issue #5925</a>)</li> </ul> <h3 id="vertex-ai_v16-0-0-beta01" data-text="Vertex AI in Firebase version 16.0.0-beta01" tabindex="-1"><span class="notranslate">Vertex AI in Firebase</span> version 16.0.0-beta01</h3> <ul> <li><span class="release-feature"></span> Initial release of the Vertex AI in Firebase SDK (public preview). Learn how to <a href="/docs/vertex-ai/get-started?platform=android">get started</a> with the SDK in your app.</li> </ul> <h2 id="2024-05-02" data-text="Update - May 02, 2024" tabindex="-1">Update - May 02, 2024</h2> <aside class="warning"><strong>BREAKING CHANGES</strong>: With this release, you need to update your app to meet the following <em<strong>minimum</strong></em> requirements: <ul> <li><code translate="no" dir="ltr">compileSdkVersion</code>: 34 or higher</li> <li><code translate="no" dir="ltr">minSdkVersion</code>: API level 21 or higher (<span class="notranslate">Firebase Authentication</span> requires API level 23 or higher) </li> </ul> </aside> <h3 id="bom_v33-0-0" data-text="Firebase Android BoM (Bill of Materials) version 33.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 33.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.8.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v33.0.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.6.2</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.6.2</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>17.1.2</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>17.1.2</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>17.1.2</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>17.1.2</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>17.1.2</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>22.3.1</td> <td><b>23.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>22.3.1</td> <td><b>23.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.4.3</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.4.3</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.6.3</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.6.3</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.6.4</td> <td><b>19.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.6.4</td> <td><b>19.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.6.4</td> <td><b>19.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.3.1</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.3.1</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>21.2.0</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>21.2.0</td> <td><b>22.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.11.1</td> <td><b>25.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.11.1</td> <td><b>25.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.4.0</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.4.0</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.4.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.4.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.4.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.4.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.2.0</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.2.0</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.4.1</td> <td><b>24.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.4.1</td> <td><b>24.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.4.1</td> <td><b>24.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.2.3</td> <td><b>25.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.2.3</td> <td><b>25.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.5.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.5.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>20.3.0</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>20.3.0</td> <td><b>21.0.0</b></td> </tr> </tbody> </table> </section> <h3 id="ab_testing_v22-0-0" data-text="A/B Testing version 22.0.0" tabindex="-1"><span class="notranslate">A/B Testing</span> version 22.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h3 id="analytics_v22-0-0" data-text="Analytics version 22.0.0" tabindex="-1"><span class="notranslate">Analytics</span> version 22.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> <li><p><span class="release-feature"></span> Added infrastructure support to integrate with server-side tagging in Google Tag Manager.</p></li> </ul> <h4 id="analytics-ktx_v22-0-0" data-text="Analytics Kotlin extensions version 22.0.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 22.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck_v18-0-0" data-text="App Check version 18.0.0" tabindex="-1"><span class="notranslate">App Check</span> version 18.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> <li><p><span class="release-removed"></span> Removed SDK support for SafetyNet. The <a href="https://developer.android.com/privacy-and-security/safetynet/deprecation-timeline">SafetyNet Attestation API is deprecated</a>.</p></li> </ul> <h4 id="appcheck-ktx_v18-0-0" data-text="App Check Kotlin extensions version 18.0.0" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 18.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck-debug_v18-0-0" data-text="App Check Debug version 18.0.0" tabindex="-1"><span class="notranslate">App Check</span> Debug version 18.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h3 id="appcheck-debug-testing_v18-0-0" data-text="App Check Debug Testing version 18.0.0" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 18.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h3 id="appcheck-playintegrity_v18-0-0" data-text="App Check Play integrity version 18.0.0" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 18.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h3 id="appdistro_gradle_plugin_v5-0-0" data-text="App Distribution Gradle plugin version 5.0.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 5.0.0</h3> <aside class="warning">This release of the <span class="notranslate">App Distribution</span> Gradle plugin is a major version (v5.0.0) and contains breaking changes. It modernizes the plugin by dropping support for lower versions of Gradle and the Android Gradle plugin. </aside> <ul> <li><span class="release-changed"></span> <strong>Breaking change</strong>: This release increases the <em><strong>minimum</strong></em> required versions to use <span class="notranslate">App Distribution</span>: <ul> <li>Gradle 7.3</li> <li>Android Gradle plugin 7.0</li> <li>Google services Gradle plugin 4.3.2</li> </ul></li> </ul> <h3 id="auth_v23-0-0" data-text="Authentication version 23.0.0" tabindex="-1"><span class="notranslate">Authentication</span> version 23.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 23 or higher.</p></li> </ul> <h4 id="auth-ktx_v23-0-0" data-text="Authentication Kotlin extensions version 23.0.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 23.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v25-0-0" data-text="Cloud Firestore version 25.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 25.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> <li><p><span class="release-feature"></span> Enabled queries with range and inequality filters on multiple fields. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5729" class="external">#5729</a> </p></li> <li><p><span class="release-feature"></span> Support conversion between <code translate="no" dir="ltr">java.time.Instant</code> and <code translate="no" dir="ltr">Timestamp</code>. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5853" class="external">#5853</a> </p></li> <li><p><span class="release-changed"></span> Internal improvements, including better test coverage.</p></li> </ul> <h4 id="firestore-ktx_v25-0-0" data-text="Cloud Firestore Kotlin extensions version 25.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 25.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v21-0-0" data-text="Cloud Functions for Firebase Client SDK version 21.0.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="functions-client-ktx_v21-0-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v24-0-0" data-text="Cloud Messaging version 24.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 24.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> <li><p><span class="release-changed"></span> Internal improvements.</p></li> <li><p><span class="release-changed"></span> Log analytics for notifications displayed by Google Play services on behalf of the app.</p></li> </ul> <h4 id="messaging-ktx_v24-0-0" data-text="Cloud Messaging Kotlin extensions version 24.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 24.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v24-0-0" data-text="Cloud Messaging Direct Boot version 24.0.0" tabindex="-1">Cloud Messaging Direct Boot version 24.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h3 id="storage_v21-0-0" data-text="Cloud Storage for Firebase version 21.0.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="storage-ktx_v21-0-0" data-text="Cloud Storage for Firebase Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v19-0-0" data-text="Crashlytics version 19.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 19.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> <li><p><span class="release-fixed"></span> Added configuration to avoid shrinking <span class="notranslate">Crashlytics</span> build resources when resources <code translate="no" dir="ltr">shrinkMode</code> is set to <code translate="no" dir="ltr">strict</code>.</p></li> </ul> <h4 id="crashlytics-ktx_v19-0-0" data-text="Crashlytics Kotlin extensions version 19.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 19.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v19-0-0" data-text="Crashlytics NDK version 19.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 19.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v19.0.0</p></li> </ul> <h3 id="crashlytics_gradle_plugin_v3-0-0" data-text="Crashlytics Gradle plugin version 3.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 3.0.0</h3> <aside class="warning">This release of the <span class="notranslate">Crashlytics</span> Gradle plugin is a major version (v3.0.0) and includes breaking changes. It modernizes the SDK by dropping support for lower versions of Gradle and the Android Gradle plugin. Additionally, the changes in this release resolve issues with AGP v8.1+ and improve support for native apps and customized builds. This release also includes the changes listed in this release note. </aside> <ul> <li><p><span class="release-removed"></span> Removed old deprecated fields <code translate="no" dir="ltr">mappingFile</code> and <code translate="no" dir="ltr">strippedNativeLibsDir</code>.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change</strong>: Replaced the closure field <code translate="no" dir="ltr">symbolGenerator</code> with two new fields: <code translate="no" dir="ltr">symbolGeneratorType</code> and <code translate="no" dir="ltr">breakpadBinary</code>.</p></li> <li><p><span class="release-changed"></span> Changed the <code translate="no" dir="ltr">unstrippedNativeLibsDir</code> field to now be cumulative. For more information, see <a href="/docs/crashlytics/upgrade-to-crashlytics-gradle-plugin-v3">Upgrade to <span class="notranslate">Crashlytics</span> Gradle plugin v3</a>.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change</strong>: This release increases the <em><strong>minimum</strong></em> required versions to use <span class="notranslate">Crashlytics</span>:</p> <ul> <li>Gradle 8</li> <li>Android Gradle plugin 8.1</li> <li>Google services Gradle plugin 4.4.1</li> </ul></li> </ul> <h3 id="dynamic-links_v22-0-0" data-text="Dynamic Links version 22.0.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 22.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="dynamic-links-ktx_v22-0-0" data-text="Dynamic Links Kotlin extensions version 22.0.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 22.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v21-0-0" data-text="In-App Messaging version 21.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="inappmessaging-ktx_v21-0-0" data-text="In-App Messaging Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v21-0-0" data-text="In-App Messaging Display version 21.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="inappmessaging-display-ktx_v21-0-0" data-text="In-App Messaging Display Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v18-0-0" data-text="Firebase installations version 18.0.0" tabindex="-1"><span class="notranslate">Firebase</span> installations version 18.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="installations-ktx_v18-0-0" data-text="Firebase installations Kotlin extensions version 18.0.0" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 18.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firebaseml-modeldownloader_v25-0-0" data-text="Firebase ML version 25.0.0" tabindex="-1"><span class="notranslate">Firebase ML</span> version 25.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v25-0-0" data-text="Firebase ML Kotlin extensions version 25.0.0" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 25.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v21-0-0" data-text="Performance Monitoring version 21.0.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="performance-ktx_v21-0-0" data-text="Performance Monitoring Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v21-0-0" data-text="Realtime Database version 21.0.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="realtime-database-ktx_v21-0-0" data-text="Realtime Database Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v22-0-0" data-text="Remote Config version 22.0.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 22.0.0</h3> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Changed the required minimum <code translate="no" dir="ltr">compileSdkVersion</code> to be 34 or higher.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">minSdkVersion</code> to API level 21 or higher.</p></li> </ul> <h4 id="remote-config-ktx_v22-0-0" data-text="Remote Config Kotlin extensions version 22.0.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 22.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2024-04-11" data-text="Update - April 11, 2024" tabindex="-1">Update - April 11, 2024</h2> <h3 id="bom_v32-8-1" data-text="Firebase Android BoM (Bill of Materials) version 32.8.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.8.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.8.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.8.1</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.6.1</td> <td><b>21.6.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.6.1</td> <td><b>21.6.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.3</td> <td>20.4.3</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.3</td> <td>20.4.3</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.6.3</td> <td>21.6.3</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.6.3</td> <td>21.6.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.6.3</td> <td><b>18.6.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.6.3</td> <td><b>18.6.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.6.3</td> <td><b>18.6.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.11.0</td> <td><b>24.11.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.11.0</td> <td><b>24.11.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.4.1</td> <td><b>20.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.4.1</td> <td><b>20.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.4.1</td> <td><b>20.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.4.1</td> <td><b>20.4.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.2.3</td> <td>24.2.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.2.3</td> <td>24.2.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.5.2</td> <td>20.5.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.5.2</td> <td>20.5.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-6-2" data-text="Analytics version 21.6.2" tabindex="-1"><span class="notranslate">Analytics</span> version 21.6.2</h3> <ul> <li><p><span class="release-fixed"></span> Transitioning <code translate="no" dir="ltr">ad_storage</code> consent from denied to granted no longer resets the app instance ID. To reset the app instance ID, use <a href="/docs/reference/kotlin/com/google/firebase/analytics/FirebaseAnalytics#resetAnalyticsData()"><code translate="no" dir="ltr">resetAnalyticsData()</code></a>.</p></li> <li><p><span class="release-fixed"></span> Internal change to improve attribution trigger registration delivery.</p></li> </ul> <h4 id="analytics-ktx_v21-6-2" data-text="Analytics Kotlin extensions version 21.6.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.6.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-11-1" data-text="Cloud Firestore version 24.11.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.11.1</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h4 id="firestore-ktx_v24-11-1" data-text="Cloud Firestore Kotlin extensions version 24.11.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.11.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-6-4" data-text="Crashlytics version 18.6.4" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.6.4</h3> <ul> <li><span class="release-fixed"></span> Force validation or rotation of Firebase Installation ID.</li> </ul> <h4 id="crashlytics-ktx_v18-6-4" data-text="Crashlytics Kotlin extensions version 18.6.4" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.6.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-6-4" data-text="Crashlytics NDK version 18.6.4" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.6.4</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.6.4</li> </ul> <h3 id="inappmessaging_v20-4-2" data-text="In-App Messaging version 20.4.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.4.2</h3> <ul> <li><span class="release-fixed"></span> Fixed bad token exception while showing in-app message. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5567" class="external">#5567</a> and GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5780" class="external">#5780</a>)</li> </ul> <h4 id="inappmessaging-ktx_v20-4-2" data-text="In-App Messaging Kotlin extensions version 20.4.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.4.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-4-2" data-text="In-App Messaging Display version 20.4.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.4.2</h3> <ul> <li><span class="release-fixed"></span> Fixed bad token exception while showing in-app message. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5567" class="external">#5567</a> and GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5780" class="external">#5780</a>)</li> </ul> <h4 id="inappmessaging-display-ktx_v20-4-2" data-text="In-App Messaging Display Kotlin extensions version 20.4.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.4.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2024-03-21" data-text="Update - March 21, 2024" tabindex="-1">Update - March 21, 2024</h2> <h3 id="bom_v32-8-0" data-text="Firebase Android BoM (Bill of Materials) version 32.8.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.8.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.7.4</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.8.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.5.1</td> <td><b>21.6.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.5.1</td> <td><b>21.6.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.4.2</td> <td><b>20.4.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.4.2</td> <td><b>20.4.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.6.3</td> <td>21.6.3</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.6.3</td> <td>21.6.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.6.2</td> <td><b>18.6.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.6.2</td> <td><b>18.6.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.6.2</td> <td><b>18.6.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.10.3</td> <td><b>24.11.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.10.3</td> <td><b>24.11.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.4.0</td> <td><b>20.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.4.0</td> <td><b>20.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.4.0</td> <td><b>20.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.4.0</td> <td><b>20.4.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.2.3</td> <td>24.2.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.2.3</td> <td>24.2.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.5.2</td> <td>20.5.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.5.2</td> <td>20.5.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-6-1" data-text="Analytics version 21.6.1" tabindex="-1"><span class="notranslate">Analytics</span> version 21.6.1</h3> <ul> <li><p><span class="release-feature"></span> Integrated parsing of <a href="https://developers.google.com/tag-platform/security/guides/implement-TCF-strings" class="external">Transparency &amp; Consent Framework (TCF)</a> data to retrieve user consent preferences.</p></li> <li><p><span class="release-fixed"></span> Internal change to improve conversions attribution accuracy for consent-based conversions.</p></li> </ul> <h4 id="analytics-ktx_v21-6-1" data-text="Analytics Kotlin extensions version 21.6.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.6.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-11-0" data-text="Cloud Firestore version 24.11.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.11.0</h3> <ul> <li><span class="release-feature"></span> Added option to only retrieve locally cached data in a snapshot listener. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5690" class="external">#5690</a> </li> </ul> <h4 id="firestore-ktx_v24-11-0" data-text="Cloud Firestore Kotlin extensions version 24.11.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.11.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-6-3" data-text="Crashlytics version 18.6.3" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.6.3</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-sessions</code> dependency.</li> </ul> <h4 id="crashlytics-ktx_v18-6-3" data-text="Crashlytics Kotlin extensions version 18.6.3" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.6.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-6-3" data-text="Crashlytics NDK version 18.6.3" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.6.3</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.6.3</li> </ul> <h3 id="inappmessaging_v20-4-1" data-text="In-App Messaging version 20.4.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.4.1</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">FirebaseInAppMessagingDisplayErrorListener</code> not being called. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5644" class="external">#5644</a>)</li> </ul> <h4 id="inappmessaging-ktx_v20-4-1" data-text="In-App Messaging Kotlin extensions version 20.4.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-4-1" data-text="In-App Messaging Display version 20.4.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.4.1</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">FirebaseInAppMessagingDisplayErrorListener</code> not being called. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5644" class="external">#5644</a>)</li> </ul> <h4 id="inappmessaging-display-ktx_v20-4-1" data-text="In-App Messaging Display Kotlin extensions version 20.4.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2024-03-07" data-text="Update - March 07, 2024" tabindex="-1">Update - March 07, 2024</h2> <h3 id="bom_v32-7-4" data-text="Firebase Android BoM (Bill of Materials) version 32.7.4" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.7.4</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.7.3</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.7.4</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.5.1</td> <td>21.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.5.1</td> <td>21.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.6.2</td> <td><b>21.6.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.6.2</td> <td><b>21.6.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.6.2</td> <td>18.6.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.6.2</td> <td>18.6.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.6.2</td> <td>18.6.2</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.10.3</td> <td>24.10.3</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.10.3</td> <td>24.10.3</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.2.3</td> <td>24.2.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.2.3</td> <td>24.2.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.5.2</td> <td>20.5.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.5.2</td> <td>20.5.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="remote-config_v21-6-3" data-text="Remote Config version 21.6.3" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.6.3</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that could cause a crash if the app was backgrounded while it was listening for real-time <span class="notranslate">Remote Config</span> updates. GitHub <a href="https://github.com/firebase/firebase-android-sdk/issues/5751" class="external">#5751</a> </li> </ul> <h4 id="remote-config-ktx_v21-6-3" data-text="Remote Config Kotlin extensions version 21.6.3" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.6.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2024-02-28" data-text="Update - February 28, 2024" tabindex="-1">Update - February 28, 2024</h2> <h3 id="bom_v32-7-3" data-text="Firebase Android BoM (Bill of Materials) version 32.7.3" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.7.3</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.7.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.7.3</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.5.1</td> <td>21.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.5.1</td> <td>21.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.1.2</td> <td>17.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.6.1</td> <td><b>21.6.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.6.1</td> <td><b>21.6.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.6.2</td> <td>18.6.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.6.2</td> <td>18.6.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.6.2</td> <td>18.6.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.10.2</td> <td><b>24.10.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.10.2</td> <td><b>24.10.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.4.1</td> <td>23.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.2.3</td> <td>24.2.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.2.3</td> <td>24.2.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.5.2</td> <td>20.5.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.5.2</td> <td>20.5.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v4-2-0" data-text="App Distribution Gradle plugin version 4.2.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 4.2.0</h3> <ul> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">testPasswordFile</code> option for the automated test feature. This gives you the option to provide test login credentials in a more secure way.</li> </ul> <h3 id="firestore_v24-10-3" data-text="Cloud Firestore version 24.10.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.10.3</h3> <ul> <li><span class="release-fixed"></span> Fixed the missing handling setter annotations bug introduced by GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5626" class="external">#5626</a>. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5706" class="external">#5706</a> </li> </ul> <h4 id="firestore-ktx_v24-10-3" data-text="Cloud Firestore Kotlin extensions version 24.10.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.10.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-3-1" data-text="Realtime Database version 20.3.1" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.3.1</h3> <ul> <li><span class="release-fixed"></span> Fixed the issue that <code translate="no" dir="ltr">@Exclude</code> annotation wasn&#39;t propagated to Kotlin&#39;s corresponding bridge methods. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5626" class="external">#5626</a> </li> </ul> <h4 id="realtime-database-ktx_v20-3-1" data-text="Realtime Database Kotlin extensions version 20.3.1" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-6-2" data-text="Remote Config version 21.6.2" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.6.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue that could cause <span class="notranslate">Remote Config</span> personalization to be logged early in specific cases.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue where the connection to the real-time <span class="notranslate">Remote Config</span> backend could remain open in the background.</p></li> </ul> <h4 id="remote-config-ktx_v21-6-2" data-text="Remote Config Kotlin extensions version 21.6.2" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.6.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2024-02-08" data-text="Update - February 08, 2024" tabindex="-1">Update - February 08, 2024</h2> <h3 id="bom_v32-7-2" data-text="Firebase Android BoM (Bill of Materials) version 32.7.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.7.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.7.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.7.2</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.5.0</td> <td><b>21.5.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.5.0</td> <td><b>21.5.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>17.1.1</td> <td><b>17.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>17.1.1</td> <td><b>17.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>17.1.1</td> <td><b>17.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>17.1.1</td> <td><b>17.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>17.1.1</td> <td><b>17.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.3.1</td> <td>22.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.6.0</td> <td><b>21.6.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.6.0</td> <td><b>21.6.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.6.1</td> <td><b>18.6.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.6.1</td> <td><b>18.6.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.6.1</td> <td><b>18.6.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.10.1</td> <td><b>24.10.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.10.1</td> <td><b>24.10.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.4.0</td> <td><b>23.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.4.0</td> <td><b>23.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.4.0</td> <td><b>23.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.2.2</td> <td><b>24.2.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.2.2</td> <td><b>24.2.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.5.1</td> <td><b>20.5.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.5.1</td> <td><b>20.5.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="ab-testing_v21-1-2" data-text="A/B Testing version 21.1.2" tabindex="-1"><span class="notranslate">A/B Testing</span> version 21.1.2</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h3 id="analytics_v21-5-1" data-text="Analytics version 21.5.1" tabindex="-1"><span class="notranslate">Analytics</span> version 21.5.1</h3> <ul> <li><span class="release-feature"></span> Increased parameter value character limit for <a href="https://support.google.com/analytics/answer/11202874">Google Analytics 360</a> properties.</li> </ul> <h4 id="analytics-ktx_v21-5-1" data-text="Analytics Kotlin extensions version 21.5.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.5.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck_v17-1-2" data-text="App Check version 17.1.2" tabindex="-1"><span class="notranslate">App Check</span> version 17.1.2</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h4 id="appcheck-ktx_v17-1-2" data-text="App Check Kotlin extensions version 17.1.2" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 17.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck-debug_v17-1-2" data-text="App Check Debug version 17.1.2" tabindex="-1"><span class="notranslate">App Check</span> Debug version 17.1.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-debug-testing_v17-1-2" data-text="App Check Debug Testing version 17.1.2" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 17.1.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-playintegrity_v17-1-2" data-text="App Check Play integrity version 17.1.2" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 17.1.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta12" data-text="App Distribution API version 16.0.0-beta12" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta12</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta12" data-text="App Distribution API Kotlin extensions version 16.0.0-beta12" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta12</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="app-distro_v16-0-0-beta12" data-text="App Distribution version 16.0.0-beta12" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta12</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h3 id="appdistro_gradle_plugin_v4-1-0" data-text="App Distribution Gradle plugin version 4.1.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 4.1.0</h3> <ul> <li><span class="release-feature"></span> You can now run customized automated tests on your Android apps in <span class="notranslate">App Distribution</span>, with the automated tester feature (beta). This feature automatically runs tests on your Android apps on virtual and physical devices at different API levels. To learn how to run an automated test, see <a href="/docs/app-distribution/android-automated-tester">Run an automated test for Android apps</a>.</li> </ul> <h3 id="firestore_v24-10-2" data-text="Cloud Firestore version 24.10.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.10.2</h3> <ul> <li><span class="release-changed"></span> Internal test improvements.</li> </ul> <h4 id="firestore-ktx_v24-10-2" data-text="Cloud Firestore Kotlin extensions version 24.10.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.10.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-4-1" data-text="Cloud Messaging version 23.4.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.4.1</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h4 id="messaging-ktx_v23-4-1" data-text="Cloud Messaging Kotlin extensions version 23.4.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-4-1" data-text="Cloud Messaging Direct Boot version 23.4.1" tabindex="-1">Cloud Messaging Direct Boot version 23.4.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-4-1"><span class="notranslate">Cloud Messaging</span> v23.4.1 release notes</a>.</li> </ul> <h3 id="crashlytics_v18-6-2" data-text="Crashlytics version 18.6.2" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.6.2</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h4 id="crashlytics-ktx_v18-6-2" data-text="Crashlytics Kotlin extensions version 18.6.2" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.6.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-6-2" data-text="Crashlytics NDK version 18.6.2" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.6.2</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.6.2</li> </ul> <h3 id="firebaseml-modeldownloader_v24-2-3" data-text="Firebase ML version 24.2.3" tabindex="-1"><span class="notranslate">Firebase ML</span> version 24.2.3</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v24-2-3" data-text="Firebase ML Kotlin extensions version 24.2.3" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.2.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-5-2" data-text="Performance Monitoring version 20.5.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.5.2</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h4 id="performance-ktx_v20-5-2" data-text="Performance Monitoring Kotlin extensions version 20.5.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.5.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-6-1" data-text="Remote Config version 21.6.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.6.1</h3> <ul> <li><span class="release-changed"></span> Bumped the versions of some internal dependencies.</li> </ul> <h4 id="remote-config-ktx_v21-6-1" data-text="Remote Config Kotlin extensions version 21.6.1" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.6.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2024-01-18" data-text="Update - January 18, 2024" tabindex="-1">Update - January 18, 2024</h2> <h3 id="bom_v32-7-1" data-text="Firebase Android BoM (Bill of Materials) version 32.7.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.7.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.7.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.7.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>22.3.0</td> <td><b>22.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>22.3.0</td> <td><b>22.3.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.6.0</td> <td>21.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.6.0</td> <td>21.6.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.6.0</td> <td><b>18.6.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.6.0</td> <td><b>18.6.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.6.0</td> <td><b>18.6.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.10.0</td> <td><b>24.10.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.10.0</td> <td><b>24.10.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.4.0</td> <td>23.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.4.0</td> <td>23.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.4.0</td> <td>23.4.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.2.1</td> <td><b>24.2.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.2.1</td> <td><b>24.2.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.5.1</td> <td>20.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.5.1</td> <td>20.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="auth_v22-3-1" data-text="Authentication version 22.3.1" tabindex="-1"><span class="notranslate">Authentication</span> version 22.3.1</h3> <ul> <li><span class="release-changed"></span> Bumped the version of the reCAPTCHA Enterprise library dependency.</li> </ul> <h4 id="auth-ktx_v22-3-1" data-text="Authentication Kotlin extensions version 22.3.1" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 22.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-10-1" data-text="Cloud Firestore version 24.10.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.10.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue caused by calling mutation on immutable map object. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5573" class="external">#5573</a> </p></li> <li><p><span class="release-fixed"></span> Fixed an issue where garbage collection runs into an infinite loop in a certain case. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5417" class="external">#5417</a> </p></li> </ul> <h4 id="firestore-ktx_v24-10-1" data-text="Cloud Firestore Kotlin extensions version 24.10.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.10.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-6-1" data-text="Crashlytics version 18.6.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.6.1</h3> <ul> <li><span class="release-changed"></span> Updated the version of the <code translate="no" dir="ltr">firebase-sessions</code> dependency for internal improvements.</li> </ul> <h4 id="crashlytics-ktx_v18-6-1" data-text="Crashlytics Kotlin extensions version 18.6.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.6.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-6-1" data-text="Crashlytics NDK version 18.6.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.6.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.6.1</li> </ul> <h3 id="firebaseml-modeldownloader_v24-2-2" data-text="Firebase ML version 24.2.2" tabindex="-1"><span class="notranslate">Firebase ML</span> version 24.2.2</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">SecurityException</code> so that the <code translate="no" dir="ltr">RECEIVER_EXPORTED</code> or <code translate="no" dir="ltr">RECEIVER_NOT_EXPORTED</code> flag must be specified when <code translate="no" dir="ltr">registerReceiver</code> is being used. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5597" class="external">#5597</a> </li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v24-2-2" data-text="Firebase ML Kotlin extensions version 24.2.2" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.2.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-12-07" data-text="Update - December 07, 2023" tabindex="-1">Update - December 07, 2023</h2> <h3 id="bom_v32-7-0" data-text="Firebase Android BoM (Bill of Materials) version 32.7.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.7.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.6.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.7.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.3.0</td> <td>22.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.3.0</td> <td>22.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.6.0</td> <td>21.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.6.0</td> <td>21.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.6.0</td> <td>18.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.6.0</td> <td>18.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.6.0</td> <td>18.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.9.1</td> <td><b>24.10.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.9.1</td> <td><b>24.10.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.3.1</td> <td><b>23.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.3.1</td> <td><b>23.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.3.1</td> <td><b>23.4.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.2.1</td> <td>24.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.2.1</td> <td>24.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.5.1</td> <td>20.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.5.1</td> <td>20.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="firestore_v24-10-0" data-text="Cloud Firestore version 24.10.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.10.0</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue in the local cache synchronization logic where all locally-cached documents that matched a resumed query would be unnecessarily re-downloaded. With this fix, the SDK now only downloads the documents that are known to be out-of-sync. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5506" class="external">#5506</a>)</li> </ul> <h4 id="firestore-ktx_v24-10-0" data-text="Cloud Firestore Kotlin extensions version 24.10.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.10.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-4-0" data-text="Cloud Messaging version 23.4.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.4.0</h3> <ul> <li><p><span class="release-changed"></span> The SDK now calls <code translate="no" dir="ltr">messageHandled()</code> after a message has been handled successfully.</p></li> <li><p><span class="release-changed"></span> Added an internal identifier to meet compliance requirements.</p></li> </ul> <h4 id="messaging-ktx_v23-4-0" data-text="Cloud Messaging Kotlin extensions version 23.4.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-4-0" data-text="Cloud Messaging Direct Boot version 23.4.0" tabindex="-1">Cloud Messaging Direct Boot version 23.4.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-4-0"><span class="notranslate">Cloud Messaging</span> v23.4.0 release notes</a>.</li> </ul> <h2 id="2023-11-16" data-text="Update - November 16, 2023" tabindex="-1">Update - November 16, 2023</h2> <h3 id="bom_v32-6-0" data-text="Firebase Android BoM (Bill of Materials) version 32.6.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.6.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.5.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.6.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>22.2.0</td> <td><b>22.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>22.2.0</td> <td><b>22.3.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.5.0</td> <td><b>21.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.5.0</td> <td><b>21.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.5.1</td> <td><b>18.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.5.1</td> <td><b>18.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.5.1</td> <td><b>18.6.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.9.1</td> <td>24.9.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.9.1</td> <td>24.9.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.3.1</td> <td>23.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.3.1</td> <td>23.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.3.1</td> <td>23.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.2.1</td> <td>24.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.2.1</td> <td>24.2.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.5.0</td> <td><b>20.5.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.5.0</td> <td><b>20.5.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="auth_v22-3-0" data-text="Authentication version 22.3.0" tabindex="-1"><span class="notranslate">Authentication</span> version 22.3.0</h3> <ul> <li><p><span class="release-deprecated"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuth#fetchSignInMethodsForEmail(java.lang.String)"><code translate="no" dir="ltr">fetchSignInMethodsForEmail</code></a>. Migrating off of this method is recommended as a security best-practice. Learn more in the Identity Platform documentation for <a href="https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection" class="external">Email Enumeration Protection</a>.</p></li> <li><p><span class="release-deprecated"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/auth/FirebaseUser#updateEmail(java.lang.String)"><code translate="no" dir="ltr">updateEmail</code></a>. Use <a href="/docs/reference/android/com/google/firebase/auth/FirebaseUser#verifyBeforeUpdateEmail(java.lang.String)"><code translate="no" dir="ltr">verifyBeforeUpdateEmail</code></a> instead.</p></li> <li><p><span class="release-changed"></span> Due to Android ecosystem dependencies, this SDK now requires devices and emulators to target API level 19 (KitKat) or higher.</p></li> <li><p><span class="release-fixed"></span> Added a fix to allow developers to link an anonymous account with an email address. (<a href="https://github.com/firebase/firebase-android-sdk/issues/5424" class="external">GitHub #5424</a>)</p></li> <li><p><span class="release-feature"></span> Added the <a href="/docs/auth/ios/apple#token_revocation"><code translate="no" dir="ltr">revokeAccessToken</code> API</a>, which you can use to delete users who signed-in with Apple.</p></li> </ul> <h4 id="auth-ktx_v22-3-0" data-text="Authentication Kotlin extensions version 22.3.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 22.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-6-0" data-text="Crashlytics version 18.6.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.6.0</h3> <ul> <li><p><span class="release-changed"></span> Included more details about app processes in reports.</p></li> <li><p><span class="release-feature"></span> Updated <code translate="no" dir="ltr">firebase-sessions</code> dependency for more accurate sessions on multi-process apps.</p></li> <li><p><span class="release-changed"></span> Added support for <span class="notranslate">Crashlytics</span> to report information from <span class="notranslate">Remote Config</span>.</p></li> </ul> <h4 id="crashlytics-ktx_v18-6-0" data-text="Crashlytics Kotlin extensions version 18.6.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.6.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-6-0" data-text="Crashlytics NDK version 18.6.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.6.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.6.0</li> </ul> <h3 id="performance_v20-5-1" data-text="Performance Monitoring version 20.5.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.5.1</h3> <ul> <li><span class="release-changed"></span> Changed to make <code translate="no" dir="ltr">firebase-performance</code> generate its own session ID.</li> </ul> <h4 id="performance-ktx_v20-5-1" data-text="Performance Monitoring Kotlin extensions version 20.5.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.5.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-6-0" data-text="Remote Config version 21.6.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.6.0</h3> <ul> <li><span class="release-changed"></span> Added support for other Firebase products to integrate with <span class="notranslate">Remote Config</span>.</li> </ul> <h4 id="remote-config-ktx_v21-6-0" data-text="Remote Config Kotlin extensions version 21.6.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.6.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-10-30" data-text="Update - October 30, 2023" tabindex="-1">Update - October 30, 2023</h2> <aside class="caution"> <p>The Kotlin extensions (KTX) APIs have been added to their respective main modules. For example, all the APIs from <code translate="no" dir="ltr">firebase-perf-ktx</code> have been added to <code translate="no" dir="ltr">firebase-perf</code> under the <code translate="no" dir="ltr">com.google.firebase.perf</code> package. </p> <p><strong>This change means that Kotlin developers should now depend on the main modules instead of the KTX modules</strong> (when using <a href="/support/release-notes/android#bom_v32-5-0"><span class="notranslate">Firebase BoM</span> v32.5.0+</a> or main module versions listed in <span class="notranslate">BoM</span> v32.5.0+). </p> <p>As part of this change, the KTX APIs in every KTX module are now deprecated. As early as September 2024, we'll no longer release KTX modules, and we'll also remove the KTX libraries from the <span class="notranslate">Firebase Android BoM</span> at that time. </p> <p>If you use KTX APIs from the KTX modules, we recommend that you <strong><em>migrate your app to use KTX APIs from the main modules instead</em></strong>. For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>. </p> </aside> <h3 id="bom_v32-5-0" data-text="Firebase Android BoM (Bill of Materials) version 32.5.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.5.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.4.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.5.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.4.0</td> <td><b>21.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.4.0</td> <td><b>21.5.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.1.1</td> <td>17.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.2.0</td> <td>22.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.2.0</td> <td>22.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.5.1</td> <td>18.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.5.1</td> <td>18.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.5.1</td> <td>18.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.9.1</td> <td>24.9.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.9.1</td> <td>24.9.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.3.1</td> <td>23.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.3.1</td> <td>23.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.3.1</td> <td>23.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.2.1</td> <td>24.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.2.1</td> <td>24.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.5.0</td> <td>20.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.5.0</td> <td>20.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-5-0" data-text="Analytics version 21.5.0" tabindex="-1"><span class="notranslate">Analytics</span> version 21.5.0</h3> <ul> <li><p><span class="release-feature"></span> Updated the <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.ConsentType">consent management API</a> to include new consent signals.</p></li> <li><p><span class="release-feature"></span> Added infrastructure support to integrate with the <a href="https://developer.android.com/design-for-safety/privacy-sandbox/attribution" class="external">Attribution Reporting API</a> from the <a href="https://developer.android.com/design-for-safety/privacy-sandbox" class="external">Privacy Sandbox on Android</a>. <br><strong>This change requires that apps bump their Android Gradle Plugin version to 4.2.0 or higher (even if you don&#39;t directly use this feature).</strong></p></li> <li><p><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-analytics</code> under the <code translate="no" dir="ltr">com.google.firebase.analytics</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</p></li> </ul> <h4 id="analytics-ktx_v21-5-0" data-text="Analytics Kotlin extensions version 21.5.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.5.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <aside class="note"><strong>Note:</strong><span> You can now access KTX APIs directly from the main module (<code translate="no" dir="ltr">com.google.firebase:firebase-analytics</code> under the <code translate="no" dir="ltr">com.google.firebase.analytics</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</span></aside> <h2 id="2023-10-26" data-text="Update - October 26, 2023" tabindex="-1">Update - October 26, 2023</h2> <h3 id="bom_v32-4-1" data-text="Firebase Android BoM (Bill of Materials) version 32.4.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.4.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.4.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.4.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.4.0</td> <td>21.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.4.0</td> <td>21.4.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>17.1.0</td> <td><b>17.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>17.1.0</td> <td><b>17.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>17.1.0</td> <td><b>17.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>17.1.0</td> <td><b>17.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>17.1.0</td> <td><b>17.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.2.0</td> <td>22.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.2.0</td> <td>22.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.4.2</td> <td>20.4.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.5.0</td> <td>21.5.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.5.0</td> <td><b>18.5.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.5.0</td> <td><b>18.5.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.5.0</td> <td><b>18.5.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.9.0</td> <td><b>24.9.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.9.0</td> <td><b>24.9.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.2.0</td> <td>17.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.3.0</td> <td><b>23.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.3.0</td> <td><b>23.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.3.0</td> <td><b>23.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.2.0</td> <td><b>24.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.2.0</td> <td><b>24.2.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.5.0</td> <td>20.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.5.0</td> <td>20.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.3.0</td> <td>20.3.0</td> </tr> </tbody> </table> </section> <h3 id="appcheck_v17-1-1" data-text="App Check version 17.1.1" tabindex="-1"><span class="notranslate">App Check</span> version 17.1.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a bug causing internal tests to depend directly on <code translate="no" dir="ltr">firebase-common</code>.</p></li> <li><p><span class="release-fixed"></span> Fixed client-side throttling in Play Integrity flows.</p></li> </ul> <h4 id="appcheck-ktx_v17-1-1" data-text="App Check Kotlin extensions version 17.1.1" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 17.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck-debug_v17-1-1" data-text="App Check Debug version 17.1.1" tabindex="-1"><span class="notranslate">App Check</span> Debug version 17.1.1</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-debug-testing_v17-1-1" data-text="App Check Debug Testing version 17.1.1" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 17.1.1</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-playintegrity_v17-1-1" data-text="App Check Play integrity version 17.1.1" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 17.1.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed client-side throttling in Play Integrity flows.</p></li> <li><p><span class="release-changed"></span> Bumped the version of the Play Integrity API library dependency.</p></li> </ul> <h3 id="appdistro_gradle_plugin_v4-0-1" data-text="App Distribution Gradle plugin version 4.0.1" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 4.0.1</h3> <ul> <li><p><span class="release-deprecated"></span> Deprecated support for versions of Android Gradle Plugin lower than 7.0.0. Support for these lower versions will be completely removed as early as April 2024.</p></li> <li><p><span class="release-fixed"></span> Fixed issue with Google Play services v4.4.0.</p></li> </ul> <h3 id="firestore_v24-9-1" data-text="Cloud Firestore version 24.9.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.9.1</h3> <ul> <li><span class="release-feature"></span> Added support for sum and average aggregate queries. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5217" class="external">#5217</a> </li> </ul> <h4 id="firestore-ktx_v24-9-1" data-text="Cloud Firestore Kotlin extensions version 24.9.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.9.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-3-1" data-text="Cloud Messaging version 23.3.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.3.1</h3> <ul> <li><p><span class="release-changed"></span> Added metadata to <code translate="no" dir="ltr">FirebaseInstanceIdReceiver</code> to signal that it finishes background broadcasts after the message has been handled.</p></li> <li><p><span class="release-changed"></span> Specified a notification&#39;s dismiss intent target via an action instead of component name.</p></li> </ul> <h4 id="messaging-ktx_v23-3-1" data-text="Cloud Messaging Kotlin extensions version 23.3.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-3-1" data-text="Cloud Messaging Direct Boot version 23.3.1" tabindex="-1">Cloud Messaging Direct Boot version 23.3.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-3-1"><span class="notranslate">Cloud Messaging</span> v23.3.1 release notes</a>.</li> </ul> <h3 id="crashlytics_v18-5-1" data-text="Crashlytics version 18.5.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.5.1</h3> <ul> <li><span class="release-fixed"></span> Internal improvement to fix compatibility with Flutter and Unity SDKs. Github <a href="https://github.com/firebase/firebase-android-sdk/pull/5275" class="external">#5275</a> </li> </ul> <h4 id="crashlytics-ktx_v18-5-1" data-text="Crashlytics Kotlin extensions version 18.5.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.5.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firebaseml-modeldownloader_v24-2-1" data-text="Firebase ML version 24.2.1" tabindex="-1"><span class="notranslate">Firebase ML</span> version 24.2.1</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v24-2-1" data-text="Firebase ML Kotlin extensions version 24.2.1" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-10-18" data-text="Update - October 18, 2023" tabindex="-1">Update - October 18, 2023</h2> <h3 id="bom_v32-4-0" data-text="Firebase Android BoM (Bill of Materials) version 32.4.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.4.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.3.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.4.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.3.0</td> <td><b>21.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.3.0</td> <td><b>21.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>17.0.1</td> <td><b>17.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>17.0.1</td> <td><b>17.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>17.0.1</td> <td><b>17.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>17.0.1</td> <td><b>17.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>17.0.1</td> <td><b>17.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>22.1.2</td> <td><b>22.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>22.1.2</td> <td><b>22.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.3.3</td> <td><b>20.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.3.3</td> <td><b>20.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.4.1</td> <td><b>21.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.4.1</td> <td><b>21.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.4.3</td> <td><b>18.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.4.3</td> <td><b>18.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.4.3</td> <td><b>18.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.2.2</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.2.2</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>21.1.0</td> <td><b>21.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>21.1.0</td> <td><b>21.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.8.1</td> <td><b>24.9.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.8.1</td> <td><b>24.9.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.3.1</td> <td><b>20.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.3.1</td> <td><b>20.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.3.5</td> <td><b>20.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.3.5</td> <td><b>20.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.3.5</td> <td><b>20.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.3.5</td> <td><b>20.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.1.4</td> <td><b>17.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.1.4</td> <td><b>17.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.2.1</td> <td><b>23.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.2.1</td> <td><b>23.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.2.1</td> <td><b>23.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.1.3</td> <td><b>24.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.1.3</td> <td><b>24.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.4.1</td> <td><b>20.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.4.1</td> <td><b>20.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>20.2.1</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>20.2.1</td> <td><b>20.3.0</b></td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-4-0" data-text="Analytics version 21.4.0" tabindex="-1"><span class="notranslate">Analytics</span> version 21.4.0</h3> <ul> <li><p><span class="release-changed"></span> Updated some internal dependencies.<br> <strong>This change requires that apps bump their <code translate="no" dir="ltr">compileSdkVersion</code> to version 33 or higher.</strong></p></li> <li><p><span class="release-issue"></span> The KTX APIs in the KTX module are marked as deprecated in <code translate="no" dir="ltr">firebase-analytics-ktx</code> v21.4.0 (see below); however, the KTX APIs were not added to the main module (<code translate="no" dir="ltr">firebase-analytics</code>). <strong>To use KTX APIs from the main module for <span class="notranslate">Analytics</span>, use <code translate="no" dir="ltr">firebase-analytics</code> v21.5.0+ (or <span class="notranslate">Firebase BoM</span> v32.5.0+).</strong></p></li> </ul> <h4 id="analytics-ktx_v21-4-0" data-text="Analytics Kotlin extensions version 21.4.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-analytics</code> under the <code translate="no" dir="ltr">com.google.firebase.analytics</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="appcheck_v17-1-0" data-text="App Check version 17.1.0" tabindex="-1"><span class="notranslate">App Check</span> version 17.1.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-appcheck-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-appcheck</code> under the <code translate="no" dir="ltr">com.google.firebase.appcheck</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="appcheck-ktx_v17-1-0" data-text="App Check Kotlin extensions version 17.1.0" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 17.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-appcheck-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-appcheck</code> under the <code translate="no" dir="ltr">com.google.firebase.appcheck</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="appcheck-debug_v17-1-0" data-text="App Check Debug version 17.1.0" tabindex="-1"><span class="notranslate">App Check</span> Debug version 17.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-debug-testing_v17-1-0" data-text="App Check Debug Testing version 17.1.0" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 17.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-playintegrity_v17-1-0" data-text="App Check Play integrity version 17.1.0" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 17.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta11" data-text="App Distribution API version 16.0.0-beta11" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta11</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-appdistribution-api-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-appdistribution-api</code> under the <code translate="no" dir="ltr">com.google.firebase.appdistribution</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta11" data-text="App Distribution API Kotlin extensions version 16.0.0-beta11" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta11</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-appdistribution-api-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-appdistribution-api</code> under the <code translate="no" dir="ltr">com.google.firebase.appdistribution</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="app-distro_v16-0-0-beta11" data-text="App Distribution version 16.0.0-beta11" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta11</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Distribution</span> SDKs versions aligned.</li> </ul> <h3 id="auth_v22-2-0" data-text="Authentication version 22.2.0" tabindex="-1"><span class="notranslate">Authentication</span> version 22.2.0</h3> <ul> <li><p><span class="release-fixed"></span> Added support for setting custom auth domains (<code translate="no" dir="ltr">authDomain</code>). (<a href="https://github.com/firebase/firebase-android-sdk/issues/4805" class="external">GitHub #4805</a>).</p></li> <li><p><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-auth</code> under the <code translate="no" dir="ltr">com.google.firebase.auth</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</p></li> </ul> <h4 id="auth-ktx_v22-2-0" data-text="Authentication Kotlin extensions version 22.2.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 22.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><p><span class="release-changed"></span> This library is now compiled with Kotlin 1.9.0. To avoid seeing a version mismatching error in your app, you need to use Kotlin 1.9.0, as well.</p></li> <li><p><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-auth</code> under the <code translate="no" dir="ltr">com.google.firebase.auth</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</p></li> </ul> <h3 id="firestore_v24-9-0" data-text="Cloud Firestore version 24.9.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.9.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-firestore</code> under the <code translate="no" dir="ltr">com.google.firebase.firestore</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="firestore-ktx_v24-9-0" data-text="Cloud Firestore Kotlin extensions version 24.9.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.9.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-firestore</code> under the <code translate="no" dir="ltr">com.google.firebase.firestore</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="functions-client_v20-4-0" data-text="Cloud Functions for Firebase Client SDK version 20.4.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.4.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-functions</code> under the <code translate="no" dir="ltr">com.google.firebase.functions</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="functions-client-ktx_v20-4-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.4.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-functions</code> under the <code translate="no" dir="ltr">com.google.firebase.functions</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="messaging_v23-3-0" data-text="Cloud Messaging version 23.3.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.3.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-messaging-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-messaging</code> under the <code translate="no" dir="ltr">com.google.firebase.messaging</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="messaging-ktx_v23-3-0" data-text="Cloud Messaging Kotlin extensions version 23.3.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-messaging-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-messaging</code> under the <code translate="no" dir="ltr">com.google.firebase.messaging</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="storage_v20-3-0" data-text="Cloud Storage for Firebase version 20.3.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 20.3.0</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue where the wrong SDK version was being reported to the backend.</p></li> <li><p><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-storage</code> under the <code translate="no" dir="ltr">com.google.firebase.storage</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</p></li> </ul> <h4 id="storage-ktx_v20-3-0" data-text="Cloud Storage for Firebase Kotlin extensions version 20.3.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 20.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-storage</code> under the <code translate="no" dir="ltr">com.google.firebase.storage</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="crashlytics_v18-5-0" data-text="Crashlytics version 18.5.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.5.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics</code> under the <code translate="no" dir="ltr">com.google.firebase.crashlytics</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="crashlytics-ktx_v18-5-0" data-text="Crashlytics Kotlin extensions version 18.5.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.5.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics</code> under the <code translate="no" dir="ltr">com.google.firebase.crashlytics</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="crashlytics-ndk_v18-5-0" data-text="Crashlytics NDK version 18.5.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.5.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.5.0</li> </ul> <h3 id="dynamic-links_v21-2-0" data-text="Dynamic Links version 21.2.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 21.2.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links</code> under the <code translate="no" dir="ltr">com.google.firebase.dynamiclinks</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="dynamic-links-ktx_v21-2-0" data-text="Dynamic Links Kotlin extensions version 21.2.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 21.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links</code> under the <code translate="no" dir="ltr">com.google.firebase.dynamic-links</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="inappmessaging_v20-4-0" data-text="In-App Messaging version 20.4.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.4.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging</code> under the <code translate="no" dir="ltr">com.google.firebase.inappmessaging</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="inappmessaging-ktx_v20-4-0" data-text="In-App Messaging Kotlin extensions version 20.4.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging</code> under the <code translate="no" dir="ltr">com.google.firebase.inappmessaging</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="inappmessaging-display_v20-4-0" data-text="In-App Messaging Display version 20.4.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.4.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display</code> under the <code translate="no" dir="ltr">com.google.firebase.inappmessaging.display</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="inappmessaging-display-ktx_v20-4-0" data-text="In-App Messaging Display Kotlin extensions version 20.4.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display</code> under the <code translate="no" dir="ltr">com.google.firebase.inappmessaging.display</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="installations_v17-2-0" data-text="Firebase installations version 17.2.0" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.2.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-installations-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-installations</code> under the <code translate="no" dir="ltr">com.google.firebase.installations</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="installations-ktx_v17-2-0" data-text="Firebase installations Kotlin extensions version 17.2.0" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-installations-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-installations</code> under the <code translate="no" dir="ltr">com.google.firebase.installations</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="messaging-directboot_v23-3-0" data-text="Cloud Messaging Direct Boot version 23.3.0" tabindex="-1">Cloud Messaging Direct Boot version 23.3.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-3-0"><span class="notranslate">Cloud Messaging</span> v23.3.0 release notes</a>.</li> </ul> <h3 id="firebaseml-modeldownloader_v24-2-0" data-text="Firebase ML version 24.2.0" tabindex="-1"><span class="notranslate">Firebase ML</span> version 24.2.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-ml-modeldownloader-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-ml-modeldownloader</code> under the <code translate="no" dir="ltr">com.google.firebase.ml.modeldownloader</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v24-2-0" data-text="Firebase ML Kotlin extensions version 24.2.0" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-ml-modeldownloader-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-ml-modeldownloader</code> under the <code translate="no" dir="ltr">com.google.firebase.ml.modeldownloader</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="performance_v20-5-0" data-text="Performance Monitoring version 20.5.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.5.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-perf-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-perf</code> under the <code translate="no" dir="ltr">com.google.firebase.perf</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="performance-ktx_v20-5-0" data-text="Performance Monitoring Kotlin extensions version 20.5.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.5.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-perf</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-perf-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-perf</code> under the <code translate="no" dir="ltr">com.google.firebase.perf</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="realtime-database_v20-3-0" data-text="Realtime Database version 20.3.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.3.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-database</code> under the <code translate="no" dir="ltr">com.google.firebase.database</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="realtime-database-ktx_v20-3-0" data-text="Realtime Database Kotlin extensions version 20.3.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-database</code> under the <code translate="no" dir="ltr">com.google.firebase.database</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h3 id="remote-config_v21-5-0" data-text="Remote Config version 21.5.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.5.0</h3> <ul> <li><span class="release-changed"></span> Added Kotlin extensions (KTX) APIs from <code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx</code> to <code translate="no" dir="ltr">com.google.firebase:firebase-config</code> under the <code translate="no" dir="ltr">com.google.firebase.remoteconfig</code> package. This means KTX APIs are accessible from this main module (for details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>).</li> </ul> <h4 id="remote-config-ktx_v21-5-0" data-text="Remote Config Kotlin extensions version 21.5.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.5.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-deprecated"></span> All the Kotlin extensions (KTX) APIs in <code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx</code> are now deprecated, and as early as April 2024, we&#39;ll no longer release KTX modules. <strong>Instead, access KTX APIs directly from the main module</strong> (<code translate="no" dir="ltr">com.google.firebase:firebase-config</code> under the <code translate="no" dir="ltr">com.google.firebase.remoteconfig</code> package). For details, see the <a href="/docs/android/kotlin-migration">FAQ about this initiative</a>.</li> </ul> <h2 id="2023-09-15" data-text="Update - September 15, 2023" tabindex="-1">Update - September 15, 2023</h2> <h3 id="bom_v32-3-1" data-text="Firebase Android BoM (Bill of Materials) version 32.3.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.3.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.3.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.3.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>22.1.1</td> <td><b>22.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>22.1.1</td> <td><b>22.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.4.2</td> <td><b>18.4.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.4.2</td> <td><b>18.4.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.4.2</td> <td><b>18.4.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.8.0</td> <td><b>24.8.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.8.0</td> <td><b>24.8.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.3.4</td> <td><b>20.3.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.3.4</td> <td><b>20.3.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.3.4</td> <td><b>20.3.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.3.4</td> <td><b>20.3.5</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.4</td> <td>17.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.4</td> <td>17.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.3</td> <td>24.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.3</td> <td>24.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.4.1</td> <td>20.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.4.1</td> <td>20.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.2.1</td> <td>20.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.2.1</td> <td>20.2.1</td> </tr> </tbody> </table> </section> <h3 id="auth_v22-1-2" data-text="Authentication version 22.1.2" tabindex="-1"><span class="notranslate">Authentication</span> version 22.1.2</h3> <ul> <li><span class="release-fixed"></span> Fixed <a href="https://github.com/firebase/firebase-android-sdk/issues/5266" class="external">GitHub #5266</a>, where <code translate="no" dir="ltr">ArrayIndexOutOfBoundsException</code> is thrown when persisting user information.</li> </ul> <h4 id="auth-ktx_v22-1-2" data-text="Authentication Kotlin extensions version 22.1.2" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 22.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-4-3" data-text="Crashlytics version 18.4.3" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.4.3</h3> <ul> <li><span class="release-fixed"></span> Disabled <code translate="no" dir="ltr">GradleMetadataPublishing</code> to fix breakage of the Kotlin extensions library. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5337" class="external">#5337</a> </li> </ul> <h4 id="crashlytics-ktx_v18-4-3" data-text="Crashlytics Kotlin extensions version 18.4.3" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.4.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-4-3" data-text="Crashlytics NDK version 18.4.3" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.4.3</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.4.3</li> </ul> <h3 id="firestore_v24-8-1" data-text="Cloud Firestore version 24.8.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.8.1</h3> <ul> <li><span class="release-fixed"></span> Disabled <code translate="no" dir="ltr">GradleMetadataPublishing</code> to fix breakage of the Kotlin extensions library. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5337" class="external">#5337</a> </li> </ul> <h4 id="firestore-ktx_v24-8-1" data-text="Cloud Firestore Kotlin extensions version 24.8.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.8.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v20-3-5" data-text="In-App Messaging version 20.3.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.3.5</h3> <ul> <li><span class="release-fixed"></span> Disabled <code translate="no" dir="ltr">GradleMetadataPublishing</code> to fix breakage of the Kotlin extensions library. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5337" class="external">#5337</a> </li> </ul> <h4 id="inappmessaging-ktx_v20-3-5" data-text="In-App Messaging Kotlin extensions version 20.3.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.3.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-3-5" data-text="In-App Messaging Display version 20.3.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.3.5</h3> <ul> <li><span class="release-fixed"></span> Disabled <code translate="no" dir="ltr">GradleMetadataPublishing</code> to fix breakage of the Kotlin extensions library. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5337" class="external">#5337</a> </li> </ul> <h4 id="inappmessaging-display-ktx_v20-3-5" data-text="In-App Messaging Display Kotlin extensions version 20.3.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.3.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-09-14" data-text="Update - September 14, 2023" tabindex="-1">Update - September 14, 2023</h2> <h3 id="bom_v32-3-0" data-text="Firebase Android BoM (Bill of Materials) version 32.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.3.0</h3> <aside class="warning">This version of the <span class="notranslate">Firebase Android BoM</span> contains new library versions that incorrectly declare their dependencies, causing build time errors. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/5339" class="external">GitHub Issue #5339</a>. We recommend updating to the latest version of the <span class="notranslate">Firebase BoM</span> (v32.3.1+) which contains a fix to each affected library. </aside> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.2.3</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.3.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.1.1</td> <td>22.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.1.1</td> <td>22.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.4.1</td> <td><b>18.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.4.1</td> <td><b>18.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.4.1</td> <td><b>18.4.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.7.1</td> <td><b>24.8.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.7.1</td> <td><b>24.8.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.3.3</td> <td><b>20.3.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.3.3</td> <td><b>20.3.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.3.3</td> <td><b>20.3.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.3.3</td> <td><b>20.3.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.4</td> <td>17.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.4</td> <td>17.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.3</td> <td>24.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.3</td> <td>24.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.4.1</td> <td>20.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.4.1</td> <td>20.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.2.1</td> <td>20.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.2.1</td> <td>20.2.1</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v18-4-2" data-text="Crashlytics version 18.4.2" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.4.2</h3> <aside class="warning">This version of the <span class="notranslate">Crashlytics</span> SDK (and its Kotlin extensions library) incorrectly declares its dependencies, causing build time errors. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/5339" class="external">GitHub Issue #5339</a>. We recommend updating to the latest version (v18.4.3+) which contains a fix. </aside> <ul> <li><p><span class="release-feature"></span> Expanded <code translate="no" dir="ltr">firebase-sessions</code> library integration to work with NDK crashes and ANRs.</p></li> <li><p><span class="release-changed"></span> Improved reliability when reporting memory usage.</p></li> </ul> <h4 id="crashlytics-ktx_v18-4-2" data-text="Crashlytics Kotlin extensions version 18.4.2" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.4.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-4-2" data-text="Crashlytics NDK version 18.4.2" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.4.2</h3> <aside class="warning">This version of the <span class="notranslate">Crashlytics</span> NDK incorrectly declares its dependencies, causing build time errors. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/5339" class="external">GitHub Issue #5339</a>. We recommend updating to the latest version (v18.4.3+) which contains a fix. </aside> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.4.2</li> </ul> <h3 id="firestore_v24-8-0" data-text="Cloud Firestore version 24.8.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.8.0</h3> <aside class="warning">This version of the <span class="notranslate">Cloud Firestore</span> SDK (and its Kotlin extensions library) incorrectly declares its dependencies, causing build time errors. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/5339" class="external">GitHub Issue #5339</a>. We recommend updating to the latest version (v24.8.1+) which contains a fix. </aside> <ul> <li><span class="release-feature"></span> Added the option to allow the SDK to create cache indexes automatically to improve query execution locally. See <a href="/docs/reference/android/com/google/firebase/firestore/PersistentCacheIndexManager#enableIndexAutoCreation()"><code translate="no" dir="ltr">db.getPersistentCacheIndexManager().enableIndexAutoCreation()</code></a>. ([GitHub <a href="//github.com/firebase/firebase-android-sdk/pull/4987" class="external">#4987</a>)</li> </ul> <h4 id="firestore-ktx_v24-8-0" data-text="Cloud Firestore Kotlin extensions version 24.8.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.8.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v20-3-4" data-text="In-App Messaging version 20.3.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.3.4</h3> <aside class="warning">This version of the <span class="notranslate">In-App Messaging</span> SDK (and its Kotlin extensions library) incorrectly declares its dependencies, causing build time errors. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/5339" class="external">GitHub Issue #5339</a>. We recommend updating to the latest version (v20.3.5+) which contains a fix. </aside> <ul> <li><span class="release-changed"></span> Updated internal logging backend.</li> </ul> <h4 id="inappmessaging-ktx_v20-3-4" data-text="In-App Messaging Kotlin extensions version 20.3.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.3.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-3-4" data-text="In-App Messaging Display version 20.3.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.3.4</h3> <aside class="warning">This version of the <span class="notranslate">In-App Messaging</span> Display SDK (and its Kotlin extensions library) incorrectly declares its dependencies, causing build time errors. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/5339" class="external">GitHub Issue #5339</a>. We recommend updating to the latest version (v20.3.5+) which contains a fix. </aside> <ul> <li><span class="release-changed"></span> Updated internal logging backend.</li> </ul> <h4 id="inappmessaging-display-ktx_v20-3-4" data-text="In-App Messaging Display Kotlin extensions version 20.3.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.3.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="google-services_plugin_v4-4-0" data-text="google-services plugin 4.4.0" tabindex="-1">google-services plugin 4.4.0</h3> <ul> <li><p><span class="release-fixed"></span> Improved compatibility with the <span class="notranslate">Crashlytics</span> Gradle plugin. (GitHub <a href="https://github.com/google/play-services-plugins/pull/272" class="external">#272</a>)</p></li> <li><p><span class="release-fixed"></span> Internal improvements, including improved compatibility with newer AGP versions. (GitHub <a href="https://github.com/google/play-services-plugins/pull/269" class="external">#269</a>)</p></li> </ul> <h2 id="2023-08-24" data-text="Update - August 24, 2023" tabindex="-1">Update - August 24, 2023</h2> <h3 id="bom_v32-2-3" data-text="Firebase Android BoM (Bill of Materials) version 32.2.3" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.2.3</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.2.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.2.3</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.1.1</td> <td>22.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.1.1</td> <td>22.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.4.0</td> <td><b>18.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.4.0</td> <td><b>18.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.4.0</td> <td><b>18.4.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.7.0</td> <td><b>24.7.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.7.0</td> <td><b>24.7.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.4</td> <td>17.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.4</td> <td>17.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.3</td> <td>24.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.3</td> <td>24.1.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.4.0</td> <td><b>20.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.4.0</td> <td><b>20.4.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.2.1</td> <td>20.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.2.1</td> <td>20.2.1</td> </tr> </tbody> </table> </section> <h3 id="firestore_v24-7-1" data-text="Cloud Firestore version 24.7.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.7.1</h3> <ul> <li><span class="release-fixed"></span> Implemented <code translate="no" dir="ltr">equals</code> method on <code translate="no" dir="ltr">Filter</code> class. GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5210" class="external">#5210</a> </li> </ul> <h4 id="firestore-ktx_v24-7-1" data-text="Cloud Firestore Kotlin extensions version 24.7.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.7.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-4-1" data-text="Crashlytics version 18.4.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.4.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-sessions</code> dependency to v1.0.2</li> </ul> <h4 id="crashlytics-ktx_v18-4-1" data-text="Crashlytics Kotlin extensions version 18.4.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-4-1" data-text="Crashlytics NDK version 18.4.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.4.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.4.1</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-9-9" data-text="Crashlytics Gradle plugin version 2.9.9" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.9</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue with the upload symbols task failing on some Windows environments.</li> </ul> <h3 id="performance_v20-4-1" data-text="Performance Monitoring version 20.4.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.4.1</h3> <ul> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-sessions</code> dependency to v1.0.2</p></li> <li><p><span class="release-fixed"></span> Changed to ensure that the data collection configuration for the <span class="notranslate">Performance Monitoring</span> SDK is accurately shared with the <code translate="no" dir="ltr">firebase-sessions</code> library. GitHub <a href="//github.com/firebase/firebase-android-sdk/pull/5202" class="external">#5202</a> </p></li> </ul> <h4 id="performance-ktx_v20-4-1" data-text="Performance Monitoring Kotlin extensions version 20.4.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-08-03" data-text="Update - August 03, 2023" tabindex="-1">Update - August 03, 2023</h2> <h3 id="bom_v32-2-2" data-text="Firebase Android BoM (Bill of Materials) version 32.2.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.2.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.2.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.2.2</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.1.1</td> <td>22.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.1.1</td> <td>22.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.4.0</td> <td>18.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.4.0</td> <td>18.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.4.0</td> <td>18.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.7.0</td> <td>24.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.7.0</td> <td>24.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.1.3</td> <td><b>17.1.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.4</td> <td>17.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.2.1</td> <td>23.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.3</td> <td>24.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.3</td> <td>24.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.2.1</td> <td>20.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.2.1</td> <td>20.2.1</td> </tr> </tbody> </table> </section> <h3 id="bom_v32-2-1" data-text="Firebase Android BoM (Bill of Materials) version 32.2.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.2.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.2.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.2.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>22.1.0</td> <td><b>22.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>22.1.0</td> <td><b>22.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.4.1</td> <td>21.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.4.0</td> <td>18.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.4.0</td> <td>18.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.4.0</td> <td>18.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.7.0</td> <td>24.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.7.0</td> <td>24.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.3.2</td> <td><b>20.3.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.3.2</td> <td><b>20.3.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.3.2</td> <td><b>20.3.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.3.2</td> <td><b>20.3.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.1.3</td> <td><b>17.1.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.2.0</td> <td><b>23.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.2.0</td> <td><b>23.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.2.0</td> <td><b>23.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.1.2</td> <td><b>24.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.1.2</td> <td><b>24.1.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.4.0</td> <td>20.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.2.1</td> <td>20.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.2.1</td> <td>20.2.1</td> </tr> </tbody> </table> </section> <h3 id="app-distro_v16-0-0-beta10" data-text="App Distribution version 16.0.0-beta10" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta10</h3> <ul> <li><p><span class="release-changed"></span> Updated internal Dagger dependency.</p></li> <li><p><span class="release-fixed"></span> Updated the third-party license file to include Dagger&#39;s license.</p></li> </ul> <h3 id="app-distro-api_v16-0-0-beta10" data-text="App Distribution API version 16.0.0-beta10" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta10</h3> <ul> <li><p><span class="release-changed"></span> Updated internal Dagger dependency.</p></li> <li><p><span class="release-fixed"></span> Updated the third-party license file to include Dagger&#39;s license.</p></li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta10" data-text="App Distribution API Kotlin extensions version 16.0.0-beta10" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta10</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="auth_v22-1-1" data-text="Authentication version 22.1.1" tabindex="-1"><span class="notranslate">Authentication</span> version 22.1.1</h3> <ul> <li><span class="release-fixed"></span> Mitigated one potential cause of <a href="https://github.com/firebase/firebase-android-sdk/issues/2434" class="external">GitHub #2434</a>, where <a href="/docs/reference/android/com/google/firebase/auth/FirebaseUser#getUid()"><code translate="no" dir="ltr">FirebaseUser.getUid()</code></a> sometimes returns an incorrect Firebase UID.</li> </ul> <h4 id="auth-ktx_v22-1-1" data-text="Authentication Kotlin extensions version 22.1.1" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 22.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-2-1" data-text="Cloud Messaging version 23.2.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.2.1</h3> <ul> <li><span class="release-changed"></span> Changed so that a background broadcast now finishes after the message has been handled, subject to a timeout. This keeps the process for <code translate="no" dir="ltr">FirebaseMessagingService</code> in an active state while it&#39;s handling an FCM message (up to the 20 seconds allowed).</li> </ul> <h4 id="messaging-ktx_v23-2-1" data-text="Cloud Messaging Kotlin extensions version 23.2.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_gradle_plugin_v2-9-8" data-text="Crashlytics Gradle plugin version 2.9.8" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.8</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue with implicit dependencies so that customized build configurations are easier to set up.</li> <li><span class="release-changed"></span> Internal changes to use modern Gradle APIs in the plugin.</li> </ul> <h3 id="inappmessaging_v20-3-3" data-text="In-App Messaging version 20.3.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.3.3</h3> <ul> <li><span class="release-changed"></span> Updated internal Dagger dependency.</li> </ul> <h4 id="inappmessaging-ktx_v20-3-3" data-text="In-App Messaging Kotlin extensions version 20.3.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.3.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-3-3" data-text="In-App Messaging Display version 20.3.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.3.3</h3> <ul> <li><span class="release-changed"></span> Updated internal Dagger dependency.</li> </ul> <h4 id="inappmessaging-display-ktx_v20-3-3" data-text="In-App Messaging Display Kotlin extensions version 20.3.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.3.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v17-1-4" data-text="Firebase installations version 17.1.4" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.1.4</h3> <ul> <li><span class="release-changed"></span> Internal changes to maintain consistency with other Firebase libraries.</li> </ul> <h4 id="installations-ktx_v17-1-4" data-text="Firebase installations Kotlin extensions version 17.1.4" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.1.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firebaseml-modeldownloader_v24-1-3" data-text="Firebase ML version 24.1.3" tabindex="-1"><span class="notranslate">Firebase ML</span> version 24.1.3</h3> <ul> <li><p><span class="release-changed"></span> Updated internal Dagger dependency.</p></li> <li><p><span class="release-fixed"></span> Updated the third-party license file to include Dagger&#39;s license.</p></li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v24-1-3" data-text="Firebase ML Kotlin extensions version 24.1.3" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.1.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-07-13" data-text="Update - July 13, 2023" tabindex="-1">Update - July 13, 2023</h2> <h3 id="bom_v32-2-0" data-text="Firebase Android BoM (Bill of Materials) version 32.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.1.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.2.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>22.0.0</td> <td><b>22.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>22.0.0</td> <td><b>22.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.3</td> <td>20.3.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.4.0</td> <td><b>21.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.4.0</td> <td><b>21.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.3.7</td> <td><b>18.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.3.7</td> <td><b>18.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.3.7</td> <td><b>18.4.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.6.1</td> <td><b>24.7.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.6.1</td> <td><b>24.7.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.1.2</td> <td><b>23.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.1.2</td> <td><b>23.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.1.2</td> <td><b>23.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.3.3</td> <td><b>20.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.3.3</td> <td><b>20.4.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.2.1</td> <td>20.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.2.1</td> <td>20.2.1</td> </tr> </tbody> </table> </section> <h3 id="app-distro_v16-0-0-beta09" data-text="App Distribution version 16.0.0-beta09" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta09</h3> <ul> <li><span class="release-feature"></span> Improved development mode to allow all API calls to be made without having to sign in.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta09" data-text="App Distribution API version 16.0.0-beta09" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta09</h3> <ul> <li><span class="release-feature"></span> Improved development mode to allow all API calls to be made without having to sign in.</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta09" data-text="App Distribution API Kotlin extensions version 16.0.0-beta09" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta09</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="auth_v22-1-0" data-text="Authentication version 22.1.0" tabindex="-1"><span class="notranslate">Authentication</span> version 22.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for TOTP MFA (time-based one-time password multi-factor authentication) to <span class="notranslate">Firebase Authentication</span>.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue with Proguard rules when R8 full-mode obfuscation is enabled. (<a href="https://github.com/firebase/firebase-android-sdk/issues/2124" class="external">GitHub #2124</a>).</p></li> </ul> <h4 id="auth-ktx_v22-1-0" data-text="Authentication Kotlin extensions version 22.1.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 22.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-7-0" data-text="Cloud Firestore version 24.7.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.7.0</h3> <ul> <li><p><span class="release-feature"></span> Exposed multi-database support for <span class="notranslate">Cloud Firestore</span>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4015" class="external">#4015</a>)</p></li> <li><p><span class="release-fixed"></span> Fixed a thread interference issue that might lead to a <code translate="no" dir="ltr">ConcurrentModificationException</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/5091" class="external">#5091</a>)</p></li> </ul> <h4 id="firestore-ktx_v24-7-0" data-text="Cloud Firestore Kotlin extensions version 24.7.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.7.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-2-0" data-text="Cloud Messaging version 23.2.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.2.0</h3> <ul> <li><span class="release-deprecated"></span> Deprecated FCM upstream messaging. After June 21, 2024, API calls to <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#send"><code translate="no" dir="ltr">FirebaseMessaging.send</code></a> in the app won’t trigger upstream messages to the app server. For more details, see the <a href="/support/faq#fcm-23-deprecation">FAQ about FCM features deprecated in June 2023</a>.</li> </ul> <h4 id="messaging-ktx_v23-2-0" data-text="Cloud Messaging Kotlin extensions version 23.2.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-4-0" data-text="Crashlytics version 18.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.4.0</h3> <ul> <li><span class="release-feature"></span> Integrated with Firebase sessions library to enable upcoming features related to session-based crash metrics. If your app uses the <span class="notranslate">Crashlytics</span> SDK, review <a href="/docs/android/play-data-disclosure">Firebase&#39;s data disclosure page</a> to make sure that your app&#39;s privacy details in the <span class="notranslate"><span class="notranslate">Play</span> Store</span> are accurate and complete.</li> </ul> <h4 id="crashlytics-ktx_v18-4-0" data-text="Crashlytics Kotlin extensions version 18.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-4-0" data-text="Crashlytics NDK version 18.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.4.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.4.0</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-9-7" data-text="Crashlytics Gradle plugin version 2.9.7" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.7</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue with uploading symbols for large binaries on Windows.</p></li> <li><p><span class="release-fixed"></span> Improved stability.</p></li> </ul> <h3 id="performance_v20-4-0" data-text="Performance Monitoring version 20.4.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.4.0</h3> <ul> <li><span class="release-feature"></span> Integrated with Firebase sessions library to enable upcoming features related to session-based performance metrics. If your app uses the <span class="notranslate">Performance Monitoring</span> SDK, review <a href="/docs/android/play-data-disclosure">Firebase&#39;s data disclosure page</a> to make sure that your app&#39;s privacy details in the <span class="notranslate"><span class="notranslate">Play</span> Store</span> are accurate and complete.</li> </ul> <h4 id="performance-ktx_v20-4-0" data-text="Performance Monitoring Kotlin extensions version 20.4.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-4-1" data-text="Remote Config version 21.4.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.4.1</h3> <ul> <li><span class="release-changed"></span> Internal improvements to support Remote Config real-time updates.</li> </ul> <h4 id="remote-config-ktx_v21-4-1" data-text="Remote Config Kotlin extensions version 21.4.1" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-06-15" data-text="Update - June 15, 2023" tabindex="-1">Update - June 15, 2023</h2> <h3 id="bom_v32-1-1" data-text="Firebase Android BoM (Bill of Materials) version 32.1.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.1.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.1.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.1.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.3.2</td> <td><b>20.3.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.3.2</td> <td><b>20.3.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.4.0</td> <td>21.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.4.0</td> <td>21.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.3.7</td> <td>18.3.7</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.3.7</td> <td>18.3.7</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.3.7</td> <td>18.3.7</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.6.1</td> <td>24.6.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.6.1</td> <td>24.6.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.3.2</td> <td><b>20.3.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.3.2</td> <td><b>20.3.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>20.2.0</td> <td><b>20.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>20.2.0</td> <td><b>20.2.1</b></td> </tr> </tbody> </table> </section> <h3 id="storage_v20-2-1" data-text="Cloud Storage for Firebase version 20.2.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 20.2.1</h3> <ul> <li><span class="release-changed"></span> Migrated <code translate="no" dir="ltr">firebase-storage</code> SDK to use standard Firebase executors. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4830" class="external">#4830</a>)</li> </ul> <h4 id="storage-ktx_v20-2-1" data-text="Cloud Storage for Firebase Kotlin extensions version 20.2.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 20.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_gradle_plugin_v2-9-6" data-text="Crashlytics Gradle plugin version 2.9.6" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.6</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue with implicit dependencies when <code translate="no" dir="ltr">unstrippedNativeLibsPath</code> is overridden to a specific directory. (GitHub <a href="https://github.com/firebase/firebase-android-sdk/issues/4912" class="external">#4912</a>)</li> </ul> <h3 id="performance_v20-3-3" data-text="Performance Monitoring version 20.3.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.3.3</h3> <ul> <li><p><span class="release-fixed"></span> Fixed app start trace creation where some measured time could be <code translate="no" dir="ltr">NULL</code>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4730" class="external">#4730</a>)</p></li> <li><p><span class="release-changed"></span> Adjusted default behavior if <span class="notranslate">Remote Config</span> fetch fails.</p></li> </ul> <h4 id="performance-ktx_v20-3-3" data-text="Performance Monitoring Kotlin extensions version 20.3.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.3.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-05-25" data-text="Update - May 25, 2023" tabindex="-1">Update - May 25, 2023</h2> <h3 id="bom_v32-1-0" data-text="Firebase Android BoM (Bill of Materials) version 32.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v32.0.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.1.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.2.2</td> <td><b>21.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.2.2</td> <td><b>21.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>17.0.0</td> <td><b>17.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>17.0.0</td> <td><b>17.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>17.0.0</td> <td><b>17.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>17.0.0</td> <td><b>17.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>17.0.0</td> <td><b>17.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.4.0</td> <td>21.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.4.0</td> <td>21.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.3.7</td> <td>18.3.7</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.3.7</td> <td>18.3.7</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.3.7</td> <td>18.3.7</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.2.1</td> <td><b>20.2.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.2.1</td> <td><b>20.2.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.6.0</td> <td><b>24.6.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.6.0</td> <td><b>24.6.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.2.0</td> <td>20.2.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-3-0" data-text="Analytics version 21.3.0" tabindex="-1"><span class="notranslate">Analytics</span> version 21.3.0</h3> <ul> <li><p><span class="release-feature"></span> Enhanced campaign attribution. You can now include more traffic source dimension details in <span class="notranslate">Google Analytics</span> reporting. Learn more in the <a href="https://support.google.com/analytics/answer/11242870" class="external"><span class="notranslate">Analytics</span> Help Center</a>.</p></li> <li><p><span class="release-fixed"></span> Fixed a bug in the retrieval of deep link and referrer data.</p></li> </ul> <h4 id="analytics-ktx_v21-3-0" data-text="Analytics Kotlin extensions version 21.3.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck_v17-0-1" data-text="App Check version 17.0.1" tabindex="-1"><span class="notranslate">App Check</span> version 17.0.1</h3> <ul> <li><span class="release-changed"></span> Internal updates to allow Firebase SDKs with <span class="notranslate">App Check</span> support to obtain limited-use tokens. (GitHub <a href="//github.com/firebase/firebase-android-sdk/pull/4979" class="external">#4979</a>)</li> </ul> <h4 id="appcheck-ktx_v17-0-1" data-text="App Check Kotlin extensions version 17.0.1" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 17.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck-debug_v17-0-1" data-text="App Check Debug version 17.0.1" tabindex="-1"><span class="notranslate">App Check</span> Debug version 17.0.1</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-debug-testing_v17-0-1" data-text="App Check Debug Testing version 17.0.1" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 17.0.1</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-playintegrity_v17-0-1" data-text="App Check Play integrity version 17.0.1" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 17.0.1</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="firestore_v24-6-1" data-text="Cloud Firestore version 24.6.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.6.1</h3> <ul> <li><span class="release-feature"></span> Implemented an optimization in the local cache synchronization logic that reduces the number of billed document reads when documents were deleted on the server while the client was not actively listening to the query (for example, while the client was offline). (GitHub <a href="//github.com/firebase/firebase-android-sdk/pull/4982" class="external">#4982</a>)</li> </ul> <h4 id="firestore-ktx_v24-6-1" data-text="Cloud Firestore Kotlin extensions version 24.6.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.6.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v20-3-1" data-text="Cloud Functions for Firebase Client SDK version 20.3.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.3.1</h3> <ul> <li><span class="release-changed"></span> Added support for <span class="notranslate">App Check</span> limited-use tokens in HTTPS callable functions. (GitHub <a href="//github.com/firebase/firebase-android-sdk/pull/5009" class="external">#5009</a>)</li> </ul> <h4 id="functions-client-ktx_v20-3-1" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.3.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-2-2" data-text="Realtime Database version 20.2.2" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.2.2</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure alignment with other SDK releases.</li> </ul> <h4 id="realtime-database-ktx_v20-2-2" data-text="Realtime Database Kotlin extensions version 20.2.2" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.2.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-05-01" data-text="Update - May 01, 2023" tabindex="-1">Update - May 01, 2023</h2> <h3 id="bom_v32-0-0" data-text="Firebase Android BoM (Bill of Materials) version 32.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 32.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.5.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v32.0.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.2</td> <td>21.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.2</td> <td>21.2.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>16.1.2</td> <td><b>17.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>16.1.2</td> <td><b>17.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>16.1.2</td> <td><b>17.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>16.1.2</td> <td><b>17.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>16.1.2</td> <td><b>17.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.3.0</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.3.0</td> <td><b>22.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.3.0</td> <td><b>21.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.3.0</td> <td><b>21.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.3.6</td> <td><b>18.3.7</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.3.6</td> <td><b>18.3.7</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.3.6</td> <td><b>18.3.7</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.2.0</td> <td><b>20.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.2.0</td> <td><b>20.2.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.5.0</td> <td><b>24.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.5.0</td> <td><b>24.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.2.2</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.2.2</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.3.1</td> <td><b>20.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.3.1</td> <td><b>20.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.3.1</td> <td><b>20.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.3.1</td> <td><b>20.3.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.3.1</td> <td><b>20.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.3.1</td> <td><b>20.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>20.1.0</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>20.1.0</td> <td><b>20.2.0</b></td> </tr> </tbody> </table> </section> <h3 id="appcheck_v17-0-0" data-text="App Check version 17.0.0" tabindex="-1"><span class="notranslate">App Check</span> version 17.0.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getLimitedUseAppCheckToken()"><code translate="no" dir="ltr">getLimitedUseAppCheckToken()</code></a> for obtaining limited-use tokens for protecting non-Firebase backends.</li> </ul> <h4 id="appcheck-ktx_v17-0-0" data-text="App Check Kotlin extensions version 17.0.0" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 17.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck-debug_v17-0-0" data-text="App Check Debug version 17.0.0" tabindex="-1"><span class="notranslate">App Check</span> Debug version 17.0.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-debug-testing_v17-0-0" data-text="App Check Debug Testing version 17.0.0" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 17.0.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-playintegrity_v17-0-0" data-text="App Check Play integrity version 17.0.0" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 17.0.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="auth_v22-0-0" data-text="Authentication version 22.0.0" tabindex="-1"><span class="notranslate">Authentication</span> version 22.0.0</h3> <ul> <li><p><span class="release-removed"></span> <strong>BREAKING CHANGE:</strong> Removed SafetyNet support for app verification during phone number authentication.</p> <p><a href="/docs/auth/android/phone-auth#enable-app-verification">App verification</a> will now use <a href="https://developer.android.com/google/play/integrity" class="external">Play Integrity</a> by default, if available; otherwise, it falls back to reCAPTCHA.</p></li> <li><p><span class="release-feature"></span> Added <span class="notranslate">Firebase App Check</span> support to <span class="notranslate">Firebase Authentication</span>.</p></li> <li><p><span class="release-changed"></span> Migrated <span class="notranslate">Authentication</span> SDK to use standard Firebase executors.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue with login state being invalid when using anonymous sign in. (GitHub <a href="https://github.com/firebase/firebase-android-sdk/issues/3885" class="external">#3885</a>)</p></li> <li><p><span class="release-fixed"></span> Fixed <a href="/docs/reference/android/com/google/firebase/auth/MultiFactorInfo#getEnrollmentTimestamp()"><code translate="no" dir="ltr">getEnrollmentTimestamp()</code></a> in <code translate="no" dir="ltr">MultiFactorInfo</code> to return <code translate="no" dir="ltr">enrollmentTimestamp</code> in seconds. (GitHub <a href="https://github.com/firebase/firebase-android-sdk/issues/4001" class="external">#4001</a>)</p></li> </ul> <h4 id="auth-ktx_v22-0-0" data-text="Authentication Kotlin extensions version 22.0.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 22.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-6-0" data-text="Cloud Firestore version 24.6.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.6.0</h3> <ul> <li><p><span class="release-fixed"></span> Fixed stack overflow caused by deeply nested server timestamps. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4702" class="external">#4702</a>)</p></li> <li><p><span class="release-feature"></span> Added new <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings.Builder#setLocalCacheSettings(com.google.firebase.firestore.LocalCacheSettings)">cache config APIs</a> to customize the SDK&#39;s cache setup.</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/firestore/MemoryLruGcSettings">LRU garbage collector</a> to the SDK&#39;s memory cache.</p></li> <li><p><span class="release-deprecated"></span> Deprecated the following APIs from <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings"><code translate="no" dir="ltr">FirebaseFirestoreSettings</code></a>:<br> <code translate="no" dir="ltr">isPersistenceEnabled</code> and <code translate="no" dir="ltr">getCacheSizeBytes</code>.</p></li> <li><p><span class="release-deprecated"></span> Deprecated the following APIs from <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings.Builder#setLocalCacheSettings(com.google.firebase.firestore.LocalCacheSettings)"><code translate="no" dir="ltr">FirebaseFirestoreSettings.Builder</code></a>:<br> <code translate="no" dir="ltr">isPersistenceEnabled</code>, <code translate="no" dir="ltr">getCacheSizeBytes</code>, <code translate="no" dir="ltr">setPersistenceEnabled</code>, and <code translate="no" dir="ltr">setCacheSizeBytes</code>.</p></li> <li><p><span class="release-changed"></span> Internal changes to ensure alignment with other SDK releases.</p></li> </ul> <h4 id="firestore-ktx_v24-6-0" data-text="Cloud Firestore Kotlin extensions version 24.6.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.6.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v20-3-0" data-text="Cloud Functions for Firebase Client SDK version 20.3.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.3.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure alignment with other SDK releases.</li> </ul> <h4 id="functions-client-ktx_v20-3-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.3.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="storage_v20-2-0" data-text="Cloud Storage for Firebase version 20.2.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 20.2.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure alignment with other SDK releases.</li> </ul> <h4 id="storage-ktx_v20-2-0" data-text="Cloud Storage for Firebase Kotlin extensions version 20.2.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 20.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-3-7" data-text="Crashlytics version 18.3.7" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.3.7</h3> <ul> <li><p><span class="release-feature"></span> Added collection of version control system (VCS) information generated by the Android Gradle plugin (AGP). This information supports a new VCS integration in Android Studio’s App Quality Insights. Learn more about the integration in the <a href="https://developer.android.com/studio/preview/features#aqi-vcs" class="external">Android Studio documentation</a>.</p> <p>To use the new VCS integration, you&#39;ll need the following:</p> <ul> <li><a href="https://developer.android.com/studio/preview/" class="external">Android Studio Hedgehog Canary 3</a> </li> <li>Android Gradle plugin (AGP) 8.2.0-alpha03+</li> <li><span class="notranslate">Firebase Crashlytics</span> SDK v18.3.7+ (or the <span class="notranslate">Firebase BoM</span> v32.0.0+)</li> <li>In your <code translate="no" dir="ltr">gradle.properties</code> file, the <code translate="no" dir="ltr">android.enableVcsInfo</code> flag set to <code translate="no" dir="ltr">true</code></li> </ul></li> </ul> <h4 id="crashlytics-ktx_v18-3-7" data-text="Crashlytics Kotlin extensions version 18.3.7" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.3.7</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-3-7" data-text="Crashlytics NDK version 18.3.7" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.3.7</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.3.7</li> </ul> <h3 id="inappmessaging_v20-3-2" data-text="In-App Messaging version 20.3.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.3.2</h3> <ul> <li><span class="release-fixed"></span> Fixed nullpointer crash when using experiments (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4716" class="external">#4716</a>)</li> </ul> <h4 id="inappmessaging-ktx_v20-3-2" data-text="In-App Messaging Kotlin extensions version 20.3.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.3.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-3-2" data-text="In-App Messaging Display version 20.3.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.3.2</h3> <ul> <li><span class="release-fixed"></span> Fixed nullpointer crash when using experiments (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4716" class="external">#4716</a>)</li> </ul> <h4 id="inappmessaging-display-ktx_v20-3-2" data-text="In-App Messaging Display Kotlin extensions version 20.3.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.3.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-3-2" data-text="Performance Monitoring version 20.3.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.3.2</h3> <ul> <li><p><span class="release-changed"></span> Updated JavaLite, protoc, protobuf-java-util to 3.21.11.</p></li> <li><p><span class="release-changed"></span> Updated <span class="notranslate">Performance Monitoring</span> to use double-precision for sampling.</p></li> </ul> <h4 id="performance-ktx_v20-3-2" data-text="Performance Monitoring Kotlin extensions version 20.3.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.3.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-2-1" data-text="Realtime Database version 20.2.1" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.2.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure alignment with other SDK releases.</li> </ul> <h4 id="realtime-database-ktx_v20-2-1" data-text="Realtime Database Kotlin extensions version 20.2.1" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-4-0" data-text="Remote Config version 21.4.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.4.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Remote Config</span> Kotlin extensions library.</li> </ul> <h4 id="remote-config-ktx_v21-4-0" data-text="Remote Config Kotlin extensions version 21.4.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has the following additional updates.</p> <ul> <li><span class="release-feature"></span> Added the <a href="/docs/reference/kotlin/com/google/firebase/remoteconfig/ktx/package-summary#(com.google.firebase.remoteconfig.FirebaseRemoteConfig).configUpdates()"><code translate="no" dir="ltr">FirebaseRemoteConfig.configUpdates</code></a> Kotlin Flow to listen for real-time config updates.</li> </ul> <h2 id="2023-04-13" data-text="Update - April 13, 2023" tabindex="-1">Update - April 13, 2023</h2> <h3 id="bom_v31-5-0" data-text="Firebase Android BoM (Bill of Materials) version 31.5.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.5.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.4.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.5.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.2.1</td> <td><b>21.2.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.2.1</td> <td><b>21.2.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.2.0</td> <td><b>21.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.2.0</td> <td><b>21.3.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.3.6</td> <td>18.3.6</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.3.6</td> <td>18.3.6</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.3.6</td> <td>18.3.6</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.1.0</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.1.0</td> <td><b>20.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.4.5</td> <td><b>24.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.4.5</td> <td><b>24.5.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-2-2" data-text="Analytics version 21.2.2" tabindex="-1"><span class="notranslate">Analytics</span> version 21.2.2</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug where apps that target Android API 33+ and run on Android version 13+ would not log referrer URL information in their campaign events.</li> </ul> <h4 id="analytics-ktx_v21-2-2" data-text="Analytics Kotlin extensions version 21.2.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.2.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="app-distro_v16-0-0-beta08" data-text="App Distribution version 16.0.0-beta08" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta08</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where a crash happened whenever a feedback notification was shown on devices running Android 4.4 and lower.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta08" data-text="App Distribution API version 16.0.0-beta08" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta08</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where a crash happened whenever a feedback notification was shown on devices running Android 4.4 and lower.</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta08" data-text="App Distribution API Kotlin extensions version 16.0.0-beta08" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta08</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="auth_v21-3-0" data-text="Authentication version 21.3.0" tabindex="-1"><span class="notranslate">Authentication</span> version 21.3.0</h3> <ul> <li><p><span class="release-feature"></span> Added reCAPTCHA Enterprise support to <span class="notranslate">Authentication</span> flows.</p> <ul> <li><p>To use this feature, your app must target API level 19 (KitKat) or higher and use Android 4.4 or higher.</p></li> <li><p>Learn how to use this feature in the <a href="https://cloud.google.com/identity-platform/docs/recaptcha-enterprise" class="external">Identity Platform documentation</a>.</p></li> <li><p>Review <a href="/docs/android/play-data-disclosure#authentication">Firebase&#39;s data disclosure page</a> to make sure that your app&#39;s privacy details in the <span class="notranslate"><span class="notranslate">Play</span> Store</span> are accurate and complete.</p></li> </ul></li> </ul> <h4 id="auth-ktx_v21-3-0" data-text="Authentication Kotlin extensions version 21.3.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-5-0" data-text="Cloud Firestore version 24.5.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.5.0</h3> <ul> <li><span class="release-fixed"></span> Fixed stack overflow caused by deeply nested server timestamps. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4702" class="external">#4702</a>)</li> </ul> <h4 id="firestore-ktx_v24-5-0" data-text="Cloud Firestore Kotlin extensions version 24.5.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.5.0</h4> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#dataObjects"><code translate="no" dir="ltr">Query.dataObjects&lt;T&gt;()</code></a> and <a href="/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#dataObjects_1"><code translate="no" dir="ltr">DocumentReference.dataObjects&lt;T&gt;()</code></a> Kotlin Flows to listen for realtime updates and convert its values to a specific type.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-9-5" data-text="Crashlytics Gradle plugin version 2.9.5" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.5</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug in capturing build IDs on clean builds when <code translate="no" dir="ltr">unstrippedNativeLibsPath</code> is overridden.</li> </ul> <h3 id="realtime-database_v20-2-0" data-text="Realtime Database version 20.2.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.2.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Realtime Database</span> Kotlin extensions library.</li> </ul> <h4 id="realtime-database-ktx_v20-2-0" data-text="Realtime Database Kotlin extensions version 20.2.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.2.0</h4> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#values"><code translate="no" dir="ltr">Query.values&lt;T&gt;()</code></a> Kotlin Flows to listen for realtime updates and convert its values to a specific type.</li> </ul> <h2 id="2023-03-28" data-text="Update - March 28, 2023" tabindex="-1">Update - March 28, 2023</h2> <h3 id="bom_v31-4-0" data-text="Firebase Android BoM (Bill of Materials) version 31.4.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.4.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.3.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.4.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.1</td> <td>21.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.1</td> <td>21.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.1.0</td> <td><b>21.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.1.0</td> <td><b>21.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.2</td> <td>20.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.3.0</td> <td>21.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.3.6</td> <td>18.3.6</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.3.6</td> <td>18.3.6</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.3.6</td> <td>18.3.6</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.4.5</td> <td>24.4.5</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.4.5</td> <td>24.4.5</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="auth_v21-2-0" data-text="Authentication version 21.2.0" tabindex="-1"><span class="notranslate">Authentication</span> version 21.2.0</h3> <ul> <li><p><span class="release-feature"></span> Added Play Integrity support for app verification during phone number authentication. <a href="/docs/auth/android/phone-auth#enable-app-verification">App verification</a> will now use <a href="https://developer.android.com/google/play/integrity" class="external">Play Integrity</a> by default, if available. If your app uses phone number authentication, review Firebase&#39;s <a href="/docs/android/play-data-disclosure#authentication">data disclosure page</a> to make sure that your app&#39;s privacy details in the <span class="notranslate"><span class="notranslate">Play</span> Store</span> are accurate and complete.</p></li> <li><p><span class="release-changed"></span> <a href="/docs/reference/android/com/google/firebase/auth/PhoneAuthOptions.Builder"><code translate="no" dir="ltr">PhoneAuthOptions.Builder</code></a> now accepts a null Activity, but it will throw a <code translate="no" dir="ltr">FirebaseAuthMissingActivityForRecaptchaException</code> if app verification falls back to reCAPTCHA. This can happen if Play Integrity is unavailable or if the app fails Play Integrity checks.</p></li> </ul> <h4 id="auth-ktx_v21-2-0" data-text="Authentication Kotlin extensions version 21.2.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-03-24" data-text="Update - March 24, 2023" tabindex="-1">Update - March 24, 2023</h2> <h3 id="bom_v31-3-0" data-text="Firebase Android BoM (Bill of Materials) version 31.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.2.3</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.3.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.2.0</td> <td><b>21.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.2.0</td> <td><b>21.2.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.2</td> <td>16.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.3.1</td> <td><b>20.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.3.1</td> <td><b>20.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.2.1</td> <td><b>21.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.2.1</td> <td><b>21.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.3.5</td> <td><b>18.3.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.3.5</td> <td><b>18.3.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.3.5</td> <td><b>18.3.6</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.4.4</td> <td><b>24.4.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.4.4</td> <td><b>24.4.5</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.3</td> <td>17.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.2</td> <td>23.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-2-1" data-text="Analytics version 21.2.1" tabindex="-1"><span class="notranslate">Analytics</span> version 21.2.1</h3> <ul> <li><span class="release-feature"></span> Added support for logging item-scoped custom parameters for <a href="/docs/analytics/measure-ecommerce">ecommerce</a> events.</li> </ul> <h4 id="analytics-ktx_v21-2-1" data-text="Analytics Kotlin extensions version 21.2.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="app-distro_v16-0-0-beta07" data-text="App Distribution version 16.0.0-beta07" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta07</h3> <ul> <li><span class="release-feature"></span> Added support for testers to attach JPEG screenshots to their feedback.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta07" data-text="App Distribution API version 16.0.0-beta07" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta07</h3> <ul> <li><span class="release-feature"></span> Added support for testers to attach JPEG screenshots to their feedback.</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta07" data-text="App Distribution API Kotlin extensions version 16.0.0-beta07" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta07</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-4-5" data-text="Cloud Firestore version 24.4.5" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.4.5</h3> <ul> <li><span class="release-feature"></span> Added support for disjunctions in queries (<code translate="no" dir="ltr">OR</code> queries).</li> </ul> <h4 id="firestore-ktx_v24-4-5" data-text="Cloud Firestore Kotlin extensions version 24.4.5" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.4.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-3-6" data-text="Crashlytics version 18.3.6" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.3.6</h3> <ul> <li><p><span class="release-feature"></span> Added support for upcoming <span class="notranslate">Crashlytics</span> features to report GWP-ASan crashes on supported API levels. (GitHub <a href="https://github.com/firebase/firebase-android-sdk/pull/4721" class="external">#4721</a>)</p></li> <li><p><span class="release-changed"></span> Improved crash reporting reliability for crashes that occur early in the app&#39;s lifecycle. (GitHub <a href="https://github.com/firebase/firebase-android-sdk/pull/4608" class="external">#4608</a>, <a href="https://github.com/firebase/firebase-android-sdk/pull/4786" class="external">#4786</a>)</p></li> </ul> <h4 id="crashlytics-ktx_v18-3-6" data-text="Crashlytics Kotlin extensions version 18.3.6" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.3.6</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-3-6" data-text="Crashlytics NDK version 18.3.6" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.3.6</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.3.6.</li> </ul> <h3 id="remote-config_v21-3-0" data-text="Remote Config version 21.3.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.3.0</h3> <ul> <li><span class="release-feature"></span> Added support for real-time config updates. To learn more, see <a href="/docs/remote-config/get-started?platform=android#add-real-time-listener">Get started with <span class="notranslate">Firebase Remote Config</span></a>.</li> </ul> <h4 id="remote-config-ktx_v21-3-0" data-text="Remote Config Kotlin extensions version 21.3.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-03-02" data-text="Update - March 02, 2023" tabindex="-1">Update - March 02, 2023</h2> <h3 id="bom_v31-2-3" data-text="Firebase Android BoM (Bill of Materials) version 31.2.3" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.2.3</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.2.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.2.3</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>16.1.1</td> <td><b>16.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>16.1.1</td> <td><b>16.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>16.1.1</td> <td><b>16.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>16.1.1</td> <td><b>16.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-safetynet</b></td> <td>16.1.1</td> <td><b>16.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>16.1.1</td> <td><b>16.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.2.1</td> <td>21.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.2.1</td> <td>21.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.3.5</td> <td>18.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.3.5</td> <td>18.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.3.5</td> <td>18.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.4.3</td> <td><b>24.4.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.4.3</td> <td><b>24.4.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.1.2</td> <td><b>17.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.1.2</td> <td><b>17.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.1.1</td> <td><b>23.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.1.1</td> <td><b>23.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.1.1</td> <td><b>23.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="appcheck_v16-1-2" data-text="App Check version 16.1.2" tabindex="-1"><span class="notranslate">App Check</span> version 16.1.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h4 id="appcheck-ktx_v16-1-2" data-text="App Check Kotlin extensions version 16.1.2" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 16.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck-debug_v16-1-2" data-text="App Check Debug version 16.1.2" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.1.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-debug-testing_v16-1-2" data-text="App Check Debug Testing version 16.1.2" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.1.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-playintegrity_v16-1-2" data-text="App Check Play integrity version 16.1.2" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 16.1.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to keep <span class="notranslate">App Check</span> SDK versions aligned.</li> </ul> <h3 id="appcheck-safetynet_v16-1-2" data-text="App Check SafetyNet version 16.1.2" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.1.2</h3> <ul> <li><span class="release-deprecated"></span> Added deprecation tagging to the <code translate="no" dir="ltr">SafetyNetAppCheckProviderFactory</code> class. (<a href="//github.com/firebase/firebase-android-sdk/issues/4686">GitHub Issue #4686</a>)</li> </ul> <h3 id="app-distro_v16-0-0-beta06" data-text="App Distribution version 16.0.0-beta06" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta06</h3> <ul> <li><span class="release-feature"></span> Added support for in-app tester feedback. To learn more, see <a href="/docs/app-distribution/collect-feedback-from-testers">Collect feedback from testers</a>.</li> <li><span class="release-fixed"></span> Fixed a bug where only the last listener added to an <code translate="no" dir="ltr">UpdateTask</code> using <code translate="no" dir="ltr">addOnProgressListener()</code> would receive updates.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta06" data-text="App Distribution API version 16.0.0-beta06" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta06</h3> <ul> <li><span class="release-feature"></span> Added support for in-app tester feedback. To learn more, see <a href="/docs/app-distribution/collect-feedback-from-testers?platform=android">Collect feedback from testers</a>.</li> <li><span class="release-fixed"></span> Fixed a bug where only the last listener added to an <code translate="no" dir="ltr">UpdateTask</code> using <code translate="no" dir="ltr">addOnProgressListener()</code> would receive updates.</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta06" data-text="App Distribution API Kotlin extensions version 16.0.0-beta06" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta06</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appdistro_gradle_plugin_v4-0-0" data-text="App Distribution Gradle plugin version 4.0.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 4.0.0</h3> <ul> <li><span class="release-removed"></span> Removed the <code translate="no" dir="ltr">appDistributionLogin</code> task. For more information about alternative ways to authenticate with the <span class="notranslate">App Distribution</span> Gradle plugin, see <a href="/docs/app-distribution/android/distribute-gradle#authenticate">Authenticate with Firebase</a> in the <span class="notranslate">App Distribution</span> documentation.</li> </ul> <h3 id="firestore_v24-4-4" data-text="Cloud Firestore version 24.4.4" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.4.4</h3> <ul> <li><span class="release-changed"></span> Relaxed certain query validations performed by the SDK (<a href="//github.com/firebase/firebase-android-sdk/issues/4231">GitHub Issue #4231</a>).</li> <li><span class="release-changed"></span> Updated gRPC to 1.52.1, and updated JavaLite, protoc, and protobuf-java-util to 3.21.11.</li> </ul> <h4 id="firestore-ktx_v24-4-4" data-text="Cloud Firestore Kotlin extensions version 24.4.4" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.4.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-1-2" data-text="Cloud Messaging version 23.1.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.1.2</h3> <ul> <li><span class="release-fixed"></span> Fixed a breakage related to Jetpack core library related to an <a href="https://android-review.googlesource.com/c/platform/frameworks/support/+/2399893">upstream update</a>.</li> <li><span class="release-changed"></span> Updated JavaLite, protoc, protobuf-java-util to 3.21.11.</li> </ul> <h4 id="messaging-ktx_v23-1-2" data-text="Cloud Messaging Kotlin extensions version 23.1.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v20-3-1" data-text="In-App Messaging version 20.3.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.3.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed nullpointer crash (<a href="//github.com/firebase/firebase-android-sdk/issues/4214">GitHub Issue #4214</a>)</p></li> <li><p><span class="release-changed"></span> Updated gRPC to 1.52.1, and updated JavaLite, protoc, protobuf-java-util to 3.21.11.</p></li> </ul> <h4 id="inappmessaging-ktx_v20-3-1" data-text="In-App Messaging Kotlin extensions version 20.3.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-3-1" data-text="In-App Messaging Display version 20.3.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.3.1</h3> <ul> <li><span class="release-fixed"></span> Fixed nullpointer crash (<a href="//github.com/firebase/firebase-android-sdk/issues/4214">GitHub Issue #4214</a>)</li> <li><span class="release-changed"></span> Updated gRPC to 1.52.1, and updated JavaLite, protoc, protobuf-java-util to 3.21.11.</li> </ul> <h4 id="inappmessaging-display-ktx_v20-3-1" data-text="In-App Messaging Display Kotlin extensions version 20.3.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v17-1-3" data-text="Firebase installations version 17.1.3" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.1.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to improve startup time.</li> </ul> <h4 id="installations-ktx_v17-1-3" data-text="Firebase installations Kotlin extensions version 17.1.3" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.1.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-02-15" data-text="Update - February 15, 2023" tabindex="-1">Update - February 15, 2023</h2> <h3 id="bom_v31-2-2" data-text="Firebase Android BoM (Bill of Materials) version 31.2.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.2.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.2.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.2.2</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.2.1</td> <td>21.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.2.1</td> <td>21.2.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.3.4</td> <td><b>18.3.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.3.4</td> <td><b>18.3.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.3.4</td> <td><b>18.3.5</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.4.3</td> <td>24.4.3</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.4.3</td> <td>24.4.3</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.1.1</td> <td><b>17.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.1.1</td> <td><b>17.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v18-3-5" data-text="Crashlytics version 18.3.5" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.3.5</h3> <ul> <li><span class="release-fixed"></span> Updated <code translate="no" dir="ltr">firebase-common</code> to its latest version (v20.3.0) to fix an issue that was causing a nondeterministic crash on startup.</li> </ul> <h4 id="crashlytics-ktx_v18-3-5" data-text="Crashlytics Kotlin extensions version 18.3.5" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.3.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-3-5" data-text="Crashlytics NDK version 18.3.5" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.3.5</h3> <ul> <li><p><span class="release-fixed"></span> Updated <code translate="no" dir="ltr">firebase-common</code> to its latest version (v20.3.0) to fix an issue that was causing a nondeterministic crash on startup.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.3.5. </p></li> </ul> <h3 id="installations_v17-1-2" data-text="Firebase installations version 17.1.2" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.1.2</h3> <ul> <li><span class="release-fixed"></span> Updated <code translate="no" dir="ltr">firebase-common</code> to its latest version (v20.3.0) to fix an issue that was causing a nondeterministic crash on startup.</li> </ul> <h4 id="installations-ktx_v17-1-2" data-text="Firebase installations Kotlin extensions version 17.1.2" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-02-10" data-text="Update - February 10, 2023" tabindex="-1">Update - February 10, 2023</h2> <h3 id="crashlytics_gradle_plugin_v2-9-4" data-text="Crashlytics Gradle plugin version 2.9.4" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.4</h3> <ul> <li><span class="release-fixed"></span> Fixed a build time NPE in some native builds.</li> </ul> <h2 id="2023-02-09" data-text="Update - February 09, 2023" tabindex="-1">Update - February 09, 2023</h2> <h3 id="bom_v31-2-1" data-text="Firebase Android BoM (Bill of Materials) version 31.2.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.2.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.2.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.2.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.1</td> <td>16.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.2.1</td> <td>21.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.2.1</td> <td>21.2.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.3.3</td> <td><b>18.3.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.3.3</td> <td><b>18.3.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.3.3</td> <td><b>18.3.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.4.2</td> <td><b>24.4.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.4.2</td> <td><b>24.4.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.2</td> <td>20.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.1.0</td> <td><b>17.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.1.0</td> <td><b>17.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.3.1</td> <td>20.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="ab-testing_v21-1-1" data-text="A/B Testing version 21.1.1" tabindex="-1"><span class="notranslate">A/B Testing</span> version 21.1.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to improve experiment reporting.</li> </ul> <h3 id="firestore_v24-4-3" data-text="Cloud Firestore version 24.4.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.4.3</h3> <ul> <li><span class="release-fixed"></span> Fixed a potential high-memory usage issue.</li> <li><span class="release-fixed"></span> Fixed an issue that stopped some performance optimization from being applied.</li> </ul> <h4 id="firestore-ktx_v24-4-3" data-text="Cloud Firestore Kotlin extensions version 24.4.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.4.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-3-4" data-text="Crashlytics version 18.3.4" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.3.4</h3> <aside class="caution">This version of <code translate="no" dir="ltr">firebase-crashlytics</code> and <code translate="no" dir="ltr">firebase-crashlytics-ktx</code> can cause a nondeterministic crash on startup. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/4683" class="external">GitHub Issue #4683</a>. We recommend updating to the latest version (v18.3.5+) which contains a fix. </aside> <ul> <li><p><span class="release-changed"></span> Improved crash reporting reliability for crashes that occur early in the app&#39;s lifecycle.</p></li> <li><p><span class="release-changed"></span> Added improved support for capturing <code translate="no" dir="ltr">BuildId</code>s for native ANRs on older Android versions.</p></li> </ul> <h4 id="crashlytics-ktx_v18-3-4" data-text="Crashlytics Kotlin extensions version 18.3.4" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.3.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-3-4" data-text="Crashlytics NDK version 18.3.4" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.3.4</h3> <aside class="caution">This version of <code translate="no" dir="ltr">firebase-crashlytics-ndk</code> can cause a nondeterministic crash on startup. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/4683" class="external">GitHub Issue #4683</a>. We recommend updating to the latest version (v18.3.5+) which contains a fix. </aside> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.3.4.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-9-3" data-text="Crashlytics Gradle plugin version 2.9.3" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.3</h3> <aside class="caution">This version of the <span class="notranslate">Crashlytics</span> Gradle plugin contains a bug that causes a build time NPE in some native builds. We recommend updating to the latest version (v2.9.4+) which contains a fix. </aside> <ul> <li><p><span class="release-changed"></span> Added improved support for capturing <code translate="no" dir="ltr">BuildId</code>s for native ANRs on older Android versions.</p></li> <li><p><span class="release-changed"></span> Improved compatibility with Android Gradle plugin (AGP) 8.</p></li> </ul> <h3 id="installations_v17-1-1" data-text="Firebase installations version 17.1.1" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.1.1</h3> <aside class="caution">This version of <code translate="no" dir="ltr">firebase-installations</code> and <code translate="no" dir="ltr">firebase-installations-ktx</code> can cause a nondeterministic crash on startup. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/4683" class="external">GitHub Issue #4683</a>. We recommend updating to the latest version (v17.1.2+) which contains a fix. </aside> <ul> <li><span class="release-changed"></span> Internal changes to improve startup time.</li> </ul> <h4 id="installations-ktx_v17-1-1" data-text="Firebase installations Kotlin extensions version 17.1.1" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2023-01-19" data-text="Update - January 19, 2023" tabindex="-1">Update - January 19, 2023</h2> <h3 id="bom_v31-2-0" data-text="Firebase Android BoM (Bill of Materials) version 31.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.1.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.2.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>16.1.0</td> <td><b>16.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>16.1.0</td> <td><b>16.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>16.1.0</td> <td><b>16.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>16.1.0</td> <td><b>16.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-safetynet</b></td> <td>16.1.0</td> <td><b>16.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>16.1.0</td> <td><b>16.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.2.0</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.2.0</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.2.0</td> <td><b>21.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.2.0</td> <td><b>21.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.3.2</td> <td><b>18.3.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.3.2</td> <td><b>18.3.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.3.2</td> <td><b>18.3.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.4.1</td> <td><b>24.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.4.1</td> <td><b>24.4.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.2.1</td> <td><b>20.2.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.2.1</td> <td><b>20.2.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.2.0</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.2.0</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.2.0</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.2.0</td> <td><b>20.3.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.1</td> <td>23.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.1.1</td> <td><b>24.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.1.1</td> <td><b>24.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.3.0</td> <td><b>20.3.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="appcheck_v16-1-1" data-text="App Check version 16.1.1" tabindex="-1"><span class="notranslate">App Check</span> version 16.1.1</h3> <ul> <li><p><span class="release-changed"></span> Migrated <span class="notranslate">App Check</span> SDKs to use standard Firebase executors. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4431" class="external">#4431</a> and <a href="//github.com/firebase/firebase-android-sdk/issues/4449" class="external">#4449</a>)</p></li> <li><p><span class="release-changed"></span> Moved Task continuations off the main thread. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4453" class="external">#4453</a>)</p></li> </ul> <h4 id="appcheck-ktx_v16-1-1" data-text="App Check Kotlin extensions version 16.1.1" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 16.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck-debug_v16-1-1" data-text="App Check Debug version 16.1.1" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.1.1</h3> <ul> <li><p><span class="release-changed"></span> Migrated <span class="notranslate">App Check</span> SDKs to use standard Firebase executors. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4431" class="external">#4431</a> and <a href="//github.com/firebase/firebase-android-sdk/issues/4449" class="external">#4449</a>)</p></li> <li><p><span class="release-changed"></span> Integrated the <span class="notranslate">App Check</span> Debug SDK with Firebase components. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4436" class="external">#4436</a>)</p></li> <li><p><span class="release-changed"></span> Moved Task continuations off the main thread. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4453" class="external">#4453</a>)</p></li> </ul> <h3 id="appcheck-debug-testing_v16-1-1" data-text="App Check Debug Testing version 16.1.1" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.1.1</h3> <ul> <li><span class="release-changed"></span> Integrated the <span class="notranslate">App Check</span> Debug Testing SDK with Firebase components. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4436" class="external">#4436</a>)</li> </ul> <h3 id="appcheck-playintegrity_v16-1-1" data-text="App Check Play integrity version 16.1.1" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 16.1.1</h3> <ul> <li><p><span class="release-changed"></span> Migrated <span class="notranslate">App Check</span> SDKs to use standard Firebase executors. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4431" class="external">#4431</a> and <a href="//github.com/firebase/firebase-android-sdk/issues/4449" class="external">#4449</a>)</p></li> <li><p><span class="release-changed"></span> Integrated the <span class="notranslate">App Check</span> Play integrity SDK with Firebase components. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4436" class="external">#4436</a>)</p></li> <li><p><span class="release-changed"></span> Moved Task continuations off the main thread. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4453" class="external">#4453</a>)</p></li> </ul> <h3 id="appcheck-safetynet_v16-1-1" data-text="App Check SafetyNet version 16.1.1" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.1.1</h3> <ul> <li><p><span class="release-changed"></span> Migrated <span class="notranslate">App Check</span> SDKs to use standard Firebase executors. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4431" class="external">#4431</a> and <a href="//github.com/firebase/firebase-android-sdk/issues/4449" class="external">#4449</a>)</p></li> <li><p><span class="release-changed"></span> Integrated the <span class="notranslate">App Check</span> SafetyNet SDK with Firebase components. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4436" class="external">#4436</a>)</p></li> <li><p><span class="release-changed"></span> Moved Task continuations off the main thread. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4453" class="external">#4453</a>)</p></li> </ul> <h3 id="appdistro_gradle_plugin_v3-2-0" data-text="App Distribution Gradle plugin version 3.2.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 3.2.0</h3> <ul> <li><span class="release-feature"></span> Links to new releases are now available. These links help you manage binaries and ensure that testers and other developers have the right release. To learn how to use these links, refer to the <a href="/docs/app-distribution/android/distribute-gradle">documentation</a> about distributing your apps.</li> </ul> <h3 id="firestore_v24-4-2" data-text="Cloud Firestore version 24.4.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.4.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that stopped some performance optimization from being applied.</li> </ul> <h4 id="firestore-ktx_v24-4-2" data-text="Cloud Firestore Kotlin extensions version 24.4.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.4.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v20-2-2" data-text="Cloud Functions for Firebase Client SDK version 20.2.2" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.2.2</h3> <ul> <li><p><span class="release-changed"></span> Moved Task continuations off the main thread.</p></li> <li><p><span class="release-changed"></span> Internal infrastructure improvements.</p></li> </ul> <h4 id="functions-client-ktx_v20-2-2" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.2.2" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.2.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-3-3" data-text="Crashlytics version 18.3.3" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.3.3</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <code translate="no" dir="ltr">firebase-crashlytics-ndk</code> v18.3.3.</li> </ul> <h4 id="crashlytics-ktx_v18-3-3" data-text="Crashlytics Kotlin extensions version 18.3.3" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.3.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-3-3" data-text="Crashlytics NDK version 18.3.3" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.3.3</h3> <ul> <li><span class="release-changed"></span> Updated internal Crashpad version to commit <code translate="no" dir="ltr">c902f6</code>.</li> </ul> <h3 id="inappmessaging_v20-3-0" data-text="In-App Messaging version 20.3.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.3.0</h3> <ul> <li><p><span class="release-changed"></span> Migrated <span class="notranslate">In-App Messaging</span> to use standard Firebase executors.</p></li> <li><p><span class="release-changed"></span> Moved Task continuations off the main thread.</p></li> <li><p><span class="release-feature"></span> Added a new API for <a href="/docs/reference/android/com/google/firebase/inappmessaging/FirebaseInAppMessaging#removeDismissListener(com.google.firebase.inappmessaging.FirebaseInAppMessagingDismissListener)">removing a dismiss listener</a>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4492" class="external">#4492</a>)</p></li> </ul> <h4 id="inappmessaging-ktx_v20-3-0" data-text="In-App Messaging Kotlin extensions version 20.3.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-3-0" data-text="In-App Messaging Display version 20.3.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.3.0</h3> <ul> <li><p><span class="release-changed"></span> Migrated <span class="notranslate">In-App Messaging</span> Display to use standard Firebase executors.</p></li> <li><p><span class="release-changed"></span> Moved Task continuations off the main thread.</p></li> <li><p><span class="release-feature"></span> Added a new API for <a href="/docs/reference/android/com/google/firebase/inappmessaging/FirebaseInAppMessaging#removeDismissListener(com.google.firebase.inappmessaging.FirebaseInAppMessagingDismissListener)">removing a dismiss listener</a>. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/4492" class="external">#4492</a>)</p></li> </ul> <h4 id="inappmessaging-display-ktx_v20-3-0" data-text="In-App Messaging Display Kotlin extensions version 20.3.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firebaseml-modeldownloader_v24-1-2" data-text="Firebase ML version 24.1.2" tabindex="-1"><span class="notranslate">Firebase ML</span> version 24.1.2</h3> <ul> <li><p><span class="release-changed"></span> Internal infrastructure improvements.</p></li> <li><p><span class="release-changed"></span> Migrated <span class="notranslate">Firebase ML</span> to use standard Firebase executors.</p></li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v24-1-2" data-text="Firebase ML Kotlin extensions version 24.1.2" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-3-1" data-text="Performance Monitoring version 20.3.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.3.1</h3> <ul> <li><span class="release-changed"></span> Migrated <span class="notranslate">Performance Monitoring</span> to use standard Firebase executors.</li> </ul> <h4 id="performance-ktx_v20-3-1" data-text="Performance Monitoring Kotlin extensions version 20.3.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-2-1" data-text="Remote Config version 21.2.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.2.1</h3> <ul> <li><span class="release-changed"></span> Migrated <span class="notranslate">Remote Config</span> to use standard Firebase executors.</li> </ul> <h4 id="remote-config-ktx_v21-2-1" data-text="Remote Config Kotlin extensions version 21.2.1" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="google-services_plugin_v4-3-15" data-text="google-services plugin 4.3.15" tabindex="-1">google-services plugin 4.3.15</h3> <ul> <li><span class="release-fixed"></span> Improved support for <code translate="no" dir="ltr">camelCase</code> variant and build type names. (GitHub <a href="https://github.com/google/play-services-plugins/pull/243" class="external">#243</a>)</li> </ul> <h2 id="2022-12-08" data-text="Update - December 08, 2022" tabindex="-1">Update - December 08, 2022</h2> <h3 id="bom_v31-1-1" data-text="Firebase Android BoM (Bill of Materials) version 31.1.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.1.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.1.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.1.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.3.2</td> <td>18.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.3.2</td> <td>18.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.3.2</td> <td>18.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.4.1</td> <td>24.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.4.1</td> <td>24.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.1</td> <td>20.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.1</td> <td>20.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.1.0</td> <td><b>23.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.1.0</td> <td><b>23.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.1.0</td> <td><b>23.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.1</td> <td>24.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.1</td> <td>24.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="messaging_v23-1-1" data-text="Cloud Messaging version 23.1.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed deadlock when handling simultaneous messages.</li> </ul> <h4 id="messaging-ktx_v23-1-1" data-text="Cloud Messaging Kotlin extensions version 23.1.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-1-1" data-text="Cloud Messaging Direct Boot version 23.1.1" tabindex="-1">Cloud Messaging Direct Boot version 23.1.1</h3> <ul> <li><span class="release-changed"></span> Removed unused classes.</li> </ul> <h2 id="2022-11-17" data-text="Update - November 17, 2022" tabindex="-1">Update - November 17, 2022</h2> <h3 id="bom_v31-1-0" data-text="Firebase Android BoM (Bill of Materials) version 31.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.0.3</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.1.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.3.2</td> <td>18.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.3.2</td> <td>18.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.3.2</td> <td>18.3.2</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.4.0</td> <td><b>24.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.4.0</td> <td><b>24.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.2.0</td> <td><b>20.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.2.0</td> <td><b>20.2.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.1</td> <td>24.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.1</td> <td>24.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.2.0</td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.2.0</td> <td><b>20.3.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v3-1-1" data-text="App Distribution Gradle plugin version 3.1.1" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 3.1.1</h3> <ul> <li><span class="release-fixed"></span> Made <code translate="no" dir="ltr"><nobr>UploadDistributionTask</nobr></code> public again.</li> </ul> <h3 id="firestore_v24-4-1" data-text="Cloud Firestore version 24.4.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.4.1</h3> <ul> <li><p><span class="release-fixed"></span> Fix <code translate="no" dir="ltr">FAILED_PRECONDITION</code> when writing to a deleted document in a transaction. (<a href="//github.com/firebase/firebase-android-sdk/issues/5871" class="external">GitHub Issue #5871</a>)</p></li> <li><p><span class="release-fixed"></span> Fixed <span class="notranslate">Cloud Firestore</span> failing to raise initial snapshot from an empty local cache result. (<a href="https://github.com/firebase/firebase-android-sdk/pull/4207" class="external">GitHub PR #4207</a>)</p></li> <li><p><span class="release-fixed"></span> Removed invalid suggestions to use <code translate="no" dir="ltr">GenericTypeIndicator</code> from error messages. (<a href="https://github.com/firebase/firebase-android-sdk/issues/222" class="external">GitHub Issue #222</a>)</p></li> <li><p><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">io.grpc.*</code> to its latest version (v1.50.2).</p></li> </ul> <h4 id="firestore-ktx_v24-4-1" data-text="Cloud Firestore Kotlin extensions version 24.4.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v20-2-1" data-text="Cloud Functions for Firebase Client SDK version 20.2.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.2.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">firebase-iid</code> to its latest version (v21.1.0).</li> </ul> <h4 id="functions-client-ktx_v20-2-1" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.2.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-3-0" data-text="Performance Monitoring version 20.3.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.3.0</h3> <ul> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">NullPointerException</code> crash when instrumenting screen traces on Android 7, 8, and 9. (<a href="//github.com/firebase/firebase-android-sdk/issues/4146" class="external">GitHub Issue #4146</a>)</li> </ul> <h4 id="performance-ktx_v20-3-0" data-text="Performance Monitoring Kotlin extensions version 20.3.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Added a <a href="/docs/reference/kotlin/com/google/firebase/perf/ktx/package-summary#trace(kotlin.String,kotlin.Function1)"><code translate="no" dir="ltr">trace(String, Trace.() -&gt; T)</code></a> extension function to create a custom trace with the specified name.</li> </ul> <h2 id="2022-11-11" data-text="Update - November 11, 2022" tabindex="-1">Update - November 11, 2022</h2> <h3 id="bom_v31-0-3" data-text="Firebase Android BoM (Bill of Materials) version 31.0.3" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.0.3</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.0.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.0.3</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.3.1</td> <td><b>18.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.3.1</td> <td><b>18.3.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.3.1</td> <td><b>18.3.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.4.0</td> <td>24.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.4.0</td> <td>24.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.1</td> <td>24.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.1</td> <td>24.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v18-3-2" data-text="Crashlytics version 18.3.2" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.3.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <code translate="no" dir="ltr">firebase-crashlytics-ndk</code> v18.3.2.</li> </ul> <h4 id="crashlytics-ktx_v18-3-2" data-text="Crashlytics Kotlin extensions version 18.3.2" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.3.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-3-2" data-text="Crashlytics NDK version 18.3.2" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.3.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an <a href="https://github.com/firebase/firebase-android-sdk/issues/4313" class="external">issue</a> preventing native crashes from being reported for Android API 29+.</li> </ul> <h2 id="2022-10-27" data-text="Update - October 27, 2022" tabindex="-1">Update - October 27, 2022</h2> <h3 id="bom_v31-0-2" data-text="Firebase Android BoM (Bill of Materials) version 31.0.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.0.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.0.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.0.2</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.3.1</td> <td>18.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.3.1</td> <td>18.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.3.1</td> <td>18.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.4.0</td> <td>24.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.4.0</td> <td>24.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.1.0</td> <td><b>24.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.1.0</td> <td><b>24.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v3-1-0" data-text="App Distribution Gradle plugin version 3.1.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 3.1.0</h3> <ul> <li><span class="release-fixed"></span> You can now use the <a href="https://docs.gradle.org/current/userguide/kotlin_dsl.html">Kotlin DSL</a> to configure the <a href="/docs/app-distribution/android/distribute-gradle"><span class="notranslate">App Distribution</span> properties</a> with multiple build variants (build types and product flavors) by adding <code translate="no" dir="ltr"><nobr>import com.google.firebase.appdistribution.gradle.firebaseAppDistribution</nobr></code> to your <code translate="no" dir="ltr">build.gradle.kts</code> build script or by using the type-safe <code translate="no" dir="ltr"><nobr>configure&lt;com.google.firebase.appdistribution.gradle.AppDistributionExtension&gt;</nobr></code>.</li> </ul> <h3 id="firebaseml-modeldownloader_v24-1-1" data-text="Firebase ML version 24.1.1" tabindex="-1"><span class="notranslate">Firebase ML</span> version 24.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <code translate="no" dir="ltr">FirebaseModelDownloader.getModel</code> was throwing <code translate="no" dir="ltr">FirebaseMlException.PERMISSION_DENIED</code> when the model name was empty. It now throws <code translate="no" dir="ltr">FirebaseMlException.INVALID_ARGUMENT</code> (<a href="https://github.com/firebase/firebase-android-sdk/issues/4157" class="external">GitHub Issue #4157</a>)</li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v24-1-0" data-text="Firebase ML Kotlin extensions version 24.1.0" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-10-20" data-text="Update - October 20, 2022" tabindex="-1">Update - October 20, 2022</h2> <h3 id="bom_v31-0-1" data-text="Firebase Android BoM (Bill of Materials) version 31.0.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.0.1</h3> <aside class="warning"><strong>Warning:</strong><span> We&#39;re aware of an <a href="https://github.com/firebase/firebase-android-sdk/issues/4313" class="external">issue</a> in the version of the <span class="notranslate">Crashlytics</span> SDK for NDK included in this version of the <span class="notranslate">BoM</span>.<br><strong>If you use <span class="notranslate">Crashlytics</span> for NDK, we strongly recommend using the latest version of the <span class="notranslate">BoM</span> (v31.0.3+).</strong></span></aside> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v31.0.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.0.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-ktx</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.2.0</td> <td>21.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.3.0</td> <td><b>18.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.3.0</td> <td><b>18.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.3.0</td> <td><b>18.3.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.4.0</td> <td>24.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.4.0</td> <td>24.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.1.0</td> <td>17.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.1.0</td> <td>23.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.2.0</td> <td>20.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.1.0</td> <td>20.1.0</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v18-3-1" data-text="Crashlytics version 18.3.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.3.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an <a href="https://github.com/firebase/firebase-android-sdk/issues/4223" class="external">issue</a> in v18.3.0 that caused a <code translate="no" dir="ltr">NoClassDefFoundError</code> in specific cases.</li> </ul> <h4 id="crashlytics-ktx_v18-3-1" data-text="Crashlytics Kotlin extensions version 18.3.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-3-1" data-text="Crashlytics NDK version 18.3.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.3.1</h3> <aside class="warning"><strong>Warning:</strong><span> We&#39;re aware of an <a href="https://github.com/firebase/firebase-android-sdk/issues/4313" class="external">issue</a> in this version of the <span class="notranslate">Crashlytics</span> SDK for NDK.<br><strong>We strongly recommend using the latest version of the SDK (v18.3.2+ or <span class="notranslate">BoM</span> v31.0.3+).</strong></span></aside> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.3.1.</li> </ul> <h2 id="2022-10-12" data-text="Update - October 12, 2022" tabindex="-1">Update - October 12, 2022</h2> <h3 id="bom_v31-0-0" data-text="Firebase Android BoM (Bill of Materials) version 31.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 31.0.0</h3> <aside class="warning"><strong>Warning:</strong><span> We&#39;re aware of an <a href="https://github.com/firebase/firebase-android-sdk/issues/4223" class="external">issue</a> in the version of the <span class="notranslate">Crashlytics</span> Android SDK included in this version of the <span class="notranslate">BoM</span>.<br><strong>If you use <span class="notranslate">Crashlytics</span>, we strongly recommend using the latest version of the <span class="notranslate">BoM</span> (v31.0.1+).</strong></span></aside> <aside class="warning"><strong>BREAKING CHANGE:</strong> With this release, the <span class="notranslate">BoM</span> no longer contains the following deprecated libraries:<br> <code translate="no" dir="ltr">firebase-appindexing</code>, <code translate="no" dir="ltr">firebase-core</code>, and <code translate="no" dir="ltr">firebase-iid</code>. Use the following alternatives instead: <ul> <li>Instead of <code translate="no" dir="ltr">firebase-appindexing</code>, use one of the options described in the <a href="/docs/app-indexing">documentation</a>. </li> <li>Instead of <code translate="no" dir="ltr">firebase-iid</code>, use <a href="/docs/reference/android/com/google/firebase/installations/FirebaseInstallations"><code translate="no" dir="ltr">firebase-installations</code></a> or <a href="/docs/reference/kotlin/com/google/firebase/installations/ktx/package-summary"><code translate="no" dir="ltr">firebase-installations-ktx</code></a>. </li> <li>Instead of <code translate="no" dir="ltr">firebase-core</code>, use <a href="/docs/reference/android/com/google/firebase/analytics/package-summary"></a><code translate="no" dir="ltr">firebase-analytics</code> or <a href="/docs/reference/kotlin/com/google/firebase/analytics/ktx/package-summary"><code translate="no" dir="ltr">firebase-analytics-ktx</code></a>. </li> </ul> </aside> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.5.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v31.0.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.1.1</td> <td><b>21.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.1.1</td> <td><b>21.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>16.0.2</td> <td><b>16.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>16.0.2</td> <td><b>16.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>16.0.2</td> <td><b>16.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>16.0.2</td> <td><b>16.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-safetynet</b></td> <td>16.0.2</td> <td><b>16.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>16.0.2</td> <td><b>16.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.8</td> <td><b>21.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.8</td> <td><b>21.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.1.2</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.1.2</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.1.2</td> <td><b>21.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.1.2</td> <td><b>21.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.13</td> <td><b>18.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.13</td> <td><b>18.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.13</td> <td><b>18.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.0.6</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.0.6</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>21.0.2</td> <td><b>21.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>21.0.2</td> <td><b>21.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.3.1</td> <td><b>24.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.3.1</td> <td><b>24.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.1.1</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.1.1</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.1.3</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.1.3</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.1.3</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.1.3</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.0.3</td> <td><b>17.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.0.3</td> <td><b>17.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.8</td> <td><b>23.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.8</td> <td><b>23.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.8</td> <td><b>23.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.0.5</td> <td><b>24.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.0.5</td> <td><b>24.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.1.1</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.1.1</td> <td><b>20.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>20.0.2</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>20.0.2</td> <td><b>20.1.0</b></td> </tr> </tbody> </table> </section> <h3 id="ab-testing_v21-1-0" data-text="A/B Testing version 21.1.0" tabindex="-1"><span class="notranslate">A/B Testing</span> version 21.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="analytics_v21-2-0" data-text="Analytics version 21.2.0" tabindex="-1"><span class="notranslate">Analytics</span> version 21.2.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics#getSessionId()"><code translate="no" dir="ltr">getSessionId()</code></a> API.</li> </ul> <h4 id="analytics-ktx_v21-2-0" data-text="Analytics Kotlin extensions version 21.2.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-analytics-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="core_v21-1-1" data-text="Firebase Core version 21.1.1" tabindex="-1">Firebase Core version 21.1.1</h3> <ul> <li><p><span class="release-deprecated"></span> The <code translate="no" dir="ltr">firebase-core</code> library is deprecated and no further versions will be released. This SDK included the Firebase SDK for <span class="notranslate">Google Analytics</span>.</p> <p>Now, to use <span class="notranslate">Google Analytics</span> or a product that recommends adding <span class="notranslate">Google Analytics</span>, you need to explicitly declare the <span class="notranslate">Analytics</span> dependency: <code translate="no" dir="ltr">com.google.firebase:firebase-analytics</code> or <code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx</code>.</p></li> </ul> <h3 id="appcheck_v16-1-0" data-text="App Check version 16.1.0" tabindex="-1"><span class="notranslate">App Check</span> version 16.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h4 id="appcheck-ktx_v16-1-0" data-text="App Check Kotlin extensions version 16.1.0" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 16.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appcheck</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-appcheck-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="appcheck-debug_v16-1-0" data-text="App Check Debug version 16.1.0" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h3 id="appcheck-debug-testing_v16-1-0" data-text="App Check Debug Testing version 16.1.0" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h3 id="appcheck-playintegrity_v16-1-0" data-text="App Check Play integrity version 16.1.0" tabindex="-1"><span class="notranslate">App Check</span> Play integrity version 16.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h3 id="appcheck-safetynet_v16-1-0" data-text="App Check Safetynet version 16.1.0" tabindex="-1"><span class="notranslate">App Check</span> Safetynet version 16.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h3 id="app-distro_v16-0-0-beta05" data-text="App Distribution version 16.0.0-beta05" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta05</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">App Distribution</span> Kotlin extensions library.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta05" data-text="App Distribution API version 16.0.0-beta05" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta05</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">App Distribution</span> Kotlin extensions library.</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta05" data-text="App Distribution Kotlin extensions version 16.0.0-beta05" tabindex="-1"><span class="notranslate">App Distribution</span> Kotlin extensions version 16.0.0-beta05</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-appdistribution-api-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="auth_v21-1-0" data-text="Authentication version 21.1.0" tabindex="-1"><span class="notranslate">Authentication</span> version 21.1.0</h3> <ul> <li><span class="release-fixed"></span> Fixed a parsing error in <code translate="no" dir="ltr">MultiFactorInfo.getEnrollmentTimestamp()</code>.</li> </ul> <h4 id="auth-ktx_v21-1-0" data-text="Authentication Kotlin extensions version 21.1.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-auth-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="firestore_v24-4-0" data-text="Cloud Firestore version 24.4.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.4.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/firestore/Query#count()"><code translate="no" dir="ltr">Query.count()</code></a>, which fetches the number of documents in the result set without actually downloading the documents.</li> </ul> <h4 id="firestore-ktx_v24-4-0" data-text="Cloud Firestore Kotlin extensions version 24.4.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-firestore-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="functions-client_v20-2-0" data-text="Cloud Functions for Firebase Client SDK version 20.2.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.2.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions library.</li> </ul> <h4 id="functions-client-ktx_v20-2-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.2.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-functions-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="messaging_v23-1-0" data-text="Cloud Messaging version 23.1.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Cloud Messaging</span> Kotlin extensions library.</li> </ul> <h4 id="messaging-ktx_v23-1-0" data-text="Cloud Messaging Kotlin extensions version 23.1.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-messaging-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="messaging-directboot_v23-1-0" data-text="Cloud Messaging Direct Boot version 23.1.0" tabindex="-1">Cloud Messaging Direct Boot version 23.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="storage_v20-1-0" data-text="Cloud Storage for Firebase version 20.1.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 20.1.0</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused an infinite number of retries with no exponential backoff for <code translate="no" dir="ltr">uploadChunk()</code>.</li> </ul> <h4 id="storage-ktx_v20-1-0" data-text="Cloud Storage for Firebase Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><p><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-storage-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary#taskState"><code translate="no" dir="ltr">StorageTask.taskState</code></a> Kotlin Flows to monitor the progress of an upload or download <code translate="no" dir="ltr">Task</code>.</p></li> </ul> <h3 id="crashlytics_v18-3-0" data-text="Crashlytics version 18.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.3.0</h3> <aside class="warning"><strong>Warning:</strong><span> We&#39;re aware of an <a href="https://github.com/firebase/firebase-android-sdk/issues/4223" class="external">issue</a> in this version of the <span class="notranslate">Crashlytics</span> Android SDK.<br><strong>We strongly recommend using the latest version of the SDK (v18.3.1+ or <span class="notranslate">BoM</span> v31.0.1+).</strong></span></aside> <ul> <li><span class="release-changed"></span> Improved reporting for crashes that occur early in the app&#39;s lifecycle. After updating to this version, you might notice a sudden <em>increase</em> in the number of crashes that are reported for your app.</li> </ul> <h4 id="crashlytics-ktx_v18-3-0" data-text="Crashlytics Kotlin extensions version 18.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-crashlytics-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="crashlytics-ndk_v18-3-0" data-text="Crashlytics NDK version 18.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.3.0</h3> <aside class="warning"><strong>Warning:</strong><span> We&#39;re aware of an <a href="https://github.com/firebase/firebase-android-sdk/issues/4223" class="external">issue</a> in the <span class="notranslate">Crashlytics</span> Android SDK v18.3.0.<br><strong>We strongly recommend using the latest version of the SDK (v18.3.1+ or <span class="notranslate">BoM</span> v31.0.1+).</strong></span></aside> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.3.0.</li> </ul> <h3 id="dynamic-links_v21-1-0" data-text="Dynamic Links version 21.1.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 21.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Dynamic Links</span> Kotlin extensions library.</li> </ul> <h4 id="dynamic-links-ktx_v21-1-0" data-text="Dynamic Links Kotlin extensions version 21.1.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 21.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-dynamic-links-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="inappmessaging_v20-2-0" data-text="In-App Messaging version 20.2.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.2.0</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that prevented marking more than one message as impressed.</li> </ul> <h4 id="inappmessaging-ktx_v20-2-0" data-text="In-App Messaging Kotlin extensions version 20.2.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-inappmessaging-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="inappmessaging-display_v20-2-0" data-text="In-App Messaging Display version 20.2.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.2.0</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that prevented marking more than one message as impressed.</li> </ul> <h4 id="inappmessaging-display-ktx_v20-2-0" data-text="In-App Messaging Display Kotlin extensions version 20.2.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-inappmessaging-display-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="installations_v17-1-0" data-text="Firebase installations version 17.1.0" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Firebase</span> installations Kotlin extensions library.</li> </ul> <h4 id="installations-ktx_v17-1-0" data-text="Firebase installations Kotlin extensions version 17.1.0" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-installations-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="firebaseml-modeldownloader_v24-1-0" data-text="Firebase ML version 24.1.0" tabindex="-1"><span class="notranslate">Firebase ML</span> version 24.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Firebase ML</span> Kotlin extensions library.</li> </ul> <h4 id="firebaseml-modeldownloader-ktx_v24-1-0" data-text="Firebase ML Kotlin extensions version 24.1.0" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-ml-modeldownloader-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="performance_v20-2-0" data-text="Performance Monitoring version 20.2.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.2.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Performance Monitoring</span> Kotlin extensions library.</li> </ul> <h4 id="performance-ktx_v20-2-0" data-text="Performance Monitoring Kotlin extensions version 20.2.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-performance-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h3 id="performance_gradle_plugin_v1-4-2" data-text="Performance Monitoring Gradle plugin version 1.4.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Gradle plugin version 1.4.2</h3> <ul> <li><span class="release-fixed"></span> Upgraded the class bytecode instrumentation APIs to be compatible with <a href="//developer.android.com/studio/releases/gradle-plugin-api-updates#agp-7-2-0" class="external">AGP 7.2</a>.</li> </ul> <h3 id="realtime-database_v20-1-0" data-text="Realtime Database version 20.1.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.1.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Realtime Database</span> Kotlin extensions library.</li> </ul> <h4 id="realtime-database-ktx_v20-1-0" data-text="Realtime Database Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><p><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-database-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#snapshots"><code translate="no" dir="ltr">Query.snapshots</code></a> and <a href="/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#childEvents"><code translate="no" dir="ltr">Query.childEvents</code></a> Kotlin Flows to listen to realtime events.</p></li> </ul> <h3 id="remote-config_v21-2-0" data-text="Remote Config version 21.2.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.2.0</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the updated <span class="notranslate">Remote Config</span> Kotlin extensions library.</li> </ul> <h4 id="remote-config-ktx_v21-2-0" data-text="Remote Config Kotlin extensions version 21.2.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Firebase now supports Kotlin coroutines. With this release, we added <a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/" class="external"><code translate="no" dir="ltr">kotlinx-coroutines-play-services</code></a> to <code translate="no" dir="ltr">firebase-config-ktx</code> as a transitive dependency, which exposes the <code translate="no" dir="ltr">Task&lt;T&gt;.await()</code> suspend function to convert a <a href="https://developers.google.com/android/guides/tasks"><code translate="no" dir="ltr">Task</code></a> into a Kotlin coroutine.</li> </ul> <h2 id="2022-09-15" data-text="Update - September 15, 2022" tabindex="-1">Update - September 15, 2022</h2> <h3 id="bom_v30-5-0" data-text="Firebase Android BoM (Bill of Materials) version 30.5.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.5.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.4.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.5.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>16.0.1</td> <td><b>16.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>16.0.1</td> <td><b>16.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-ktx</b></td> <td>N/A</td> <td><b>16.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>16.0.1</td> <td><b>16.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-safetynet</b></td> <td>16.0.1</td> <td><b>16.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>16.0.1</td> <td><b>16.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.8</td> <td>21.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.8</td> <td>21.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.1.2</td> <td>21.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.1.2</td> <td>21.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.13</td> <td>18.2.13</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.13</td> <td>18.2.13</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.13</td> <td>18.2.13</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.3.0</td> <td><b>24.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.3.0</td> <td><b>24.3.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.3</td> <td>20.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.3</td> <td>20.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.3</td> <td>20.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.3</td> <td>20.1.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.0.2</td> <td><b>17.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.0.2</td> <td><b>17.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.8</td> <td>23.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.8</td> <td>23.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.8</td> <td>23.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.5</td> <td>24.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.5</td> <td>24.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.2</td> <td>20.0.2</td> </tr> </tbody> </table> </section> <h3 id="appcheck_v16-0-2" data-text="App Check version 16.0.2" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h4 id="appcheck-ktx_v16-0-2" data-text="App Check Kotlin extensions version 16.0.2" tabindex="-1"><span class="notranslate">App Check</span> Kotlin extensions version 16.0.2</h4> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Firebase App Check</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-appcheck</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/appcheck/ktx/package-summary"><span class="notranslate">App Check</span> KTX documentation</a>.</li> </ul> <h3 id="appcheck-debug_v16-0-2" data-text="App Check Debug version 16.0.2" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h3 id="appcheck-debug-testing_v16-0-2" data-text="App Check Debug Testing version 16.0.2" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h3 id="appcheck-playintegrity_v16-0-2" data-text="App Check Play Integrity version 16.0.2" tabindex="-1"><span class="notranslate">App Check</span> Play Integrity version 16.0.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h3 id="appcheck-safetynet_v16-0-2" data-text="App Check SafetyNet version 16.0.2" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate">App Check</span> Kotlin extensions library.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta04" data-text="App Distribution API version 16.0.0-beta04" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta04</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="app-distro-api-ktx_v16-0-0-beta04" data-text="App Distribution Kotlin extensions version 16.0.0-beta04" tabindex="-1"><span class="notranslate">App Distribution</span> Kotlin extensions version 16.0.0-beta04</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-3-1" data-text="Cloud Firestore version 24.3.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.3.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">io.grpc.*</code> to its latest version (v1.48.1).</li> </ul> <h4 id="firestore-ktx_v24-3-1" data-text="Cloud Firestore Kotlin extensions version 24.3.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library.</p> <h3 id="crashlytics_gradle_plugin_v2-9-2" data-text="Crashlytics Gradle plugin version 2.9.2" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.2</h3> <ul> <li><span class="release-changed"></span> Expanded support for using the plugin behind a proxy. The preferred way to set a proxy is now consistent with the <a href="https://github.com/firebase/firebase-tools#using-behind-a-proxy" class="external"><span class="notranslate">Firebase</span> CLI</a>. To use a proxy, set the <code translate="no" dir="ltr">HTTPS_PROXY</code> or <code translate="no" dir="ltr">HTTP_PROXY</code> value in your environment to the URL of your proxy (for example, <code translate="no" dir="ltr">HTTP_PROXY=http://127.0.0.1:12345</code>).</li> </ul> <h3 id="installations_v17-0-3" data-text="Firebase installations version 17.0.3" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.0.3</h3> <ul> <li><span class="release-fixed"></span> Removed unintended disk IO on the main thread at app startup.</li> </ul> <h4 id="installations-ktx_v17-0-3" data-text="Firebase installations Kotlin extensions version 17.0.3" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="google-services_plugin_v4-3-14" data-text="google-services plugin 4.3.14" tabindex="-1">google-services plugin 4.3.14</h3> <ul> <li><span class="release-fixed"></span> Improved task caching and awareness of changes in <code translate="no" dir="ltr">google-services.json</code> files.</li> </ul> <h2 id="2022-09-06" data-text="Update - September 06, 2022" tabindex="-1">Update - September 06, 2022</h2> <h3 id="bom_v30-4-1" data-text="Firebase Android BoM (Bill of Materials) version 30.4.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.4.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.4.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.4.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.0.1</td> <td>16.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.0.1</td> <td>16.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>16.0.0</td> <td><b>16.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.0.1</td> <td>16.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.0.1</td> <td>16.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.8</td> <td>21.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.8</td> <td>21.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.1.2</td> <td>21.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.1.2</td> <td>21.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.13</td> <td>18.2.13</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.13</td> <td>18.2.13</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.13</td> <td>18.2.13</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.3.0</td> <td>24.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.3.0</td> <td>24.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.3</td> <td>20.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.3</td> <td>20.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.3</td> <td>20.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.3</td> <td>20.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.2</td> <td>17.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.2</td> <td>17.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.8</td> <td>23.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.8</td> <td>23.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.8</td> <td>23.0.8</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.5</td> <td>24.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.5</td> <td>24.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.2</td> <td>20.0.2</td> </tr> </tbody> </table> </section> <h3 id="appcheck-playintegrity_v16-0-1" data-text="App Check Play Integrity version 16.0.1" tabindex="-1"><span class="notranslate">App Check</span> Play Integrity version 16.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h2 id="2022-09-01" data-text="Update - September 01, 2022" tabindex="-1">Update - September 01, 2022</h2> <h3 id="bom_v30-4-0" data-text="Firebase Android BoM (Bill of Materials) version 30.4.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.4.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.3.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.4.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.1.0</td> <td><b>21.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.1.0</td> <td><b>21.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>16.0.0</td> <td><b>16.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>16.0.0</td> <td><b>16.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-safetynet</b></td> <td>16.0.0</td> <td><b>16.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>16.0.0</td> <td><b>16.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.7</td> <td><b>21.0.8</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.7</td> <td><b>21.0.8</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.1.1</td> <td><b>21.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.1.1</td> <td><b>21.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>21.1.0</td> <td><b>21.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.12</td> <td><b>18.2.13</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.12</td> <td><b>18.2.13</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.12</td> <td><b>18.2.13</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.0.5</td> <td><b>20.0.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.0.5</td> <td><b>20.0.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>21.0.1</td> <td><b>21.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>21.0.1</td> <td><b>21.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.2.2</td> <td><b>24.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.2.2</td> <td><b>24.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.1.2</td> <td><b>20.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.1.2</td> <td><b>20.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.1.2</td> <td><b>20.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.1.2</td> <td><b>20.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.0.1</td> <td><b>17.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.0.1</td> <td><b>17.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.7</td> <td><b>23.0.8</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.7</td> <td><b>23.0.8</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.7</td> <td><b>23.0.8</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.0.4</td> <td><b>24.0.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.0.4</td> <td><b>24.0.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> </tbody> </table> </section> <h3 id="ab-testing_v21-0-2" data-text="A/B Testing version 21.0.2" tabindex="-1"><span class="notranslate">A/B Testing</span> version 21.0.2</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h3 id="analytics_v21-1-1" data-text="Analytics version 21.1.1" tabindex="-1"><span class="notranslate">Analytics</span> version 21.1.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a bug where <code translate="no" dir="ltr">GoogleTagManager</code> (transitively included from the <a href="//developers.google.com/tag-platform/tag-manager/android/v5">Tag Manager SDK</a>) would rapidly retry DNS lookups whenever it fails.</p></li> <li><p><span class="release-fixed"></span> Updated dependencies.</p></li> </ul> <h4 id="analytics-ktx_v21-1-1" data-text="Analytics Kotlin extensions version 21.1.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck_v16-0-1" data-text="App Check version 16.0.1" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h3 id="appcheck-debug_v16-0-1" data-text="App Check Debug version 16.0.1" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h3 id="appcheck-debug-testing_v16-0-1" data-text="App Check Debug Testing version 16.0.1" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h3 id="appcheck-safetynet_v16-0-1" data-text="App Check SafetyNet version 16.0.1" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h3 id="auth_v21-0-8" data-text="Authentication version 21.0.8" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.8</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="auth-ktx_v21-0-8" data-text="Authentication Kotlin extensions version 21.0.8" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.8</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-3-0" data-text="Cloud Firestore version 24.3.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.3.0</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="firestore-ktx_v24-3-0" data-text="Cloud Firestore Kotlin extensions version 24.3.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library also has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#snapshots_1"><code translate="no" dir="ltr">Query.snapshots()</code></a> and <a href="/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#snapshots"><code translate="no" dir="ltr">DocumentReference.snapshots()</code></a> Kotlin Flows to listen for realtime updates.</li> </ul> <h3 id="functions-client_v20-1-1" data-text="Cloud Functions for Firebase Client SDK version 20.1.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.1.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="functions-client-ktx_v20-1-1" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.1.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-2-13" data-text="Crashlytics version 18.2.13" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.13</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="crashlytics-ktx_v18-2-13" data-text="Crashlytics Kotlin extensions version 18.2.13" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.13</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-13" data-text="Crashlytics NDK version 18.2.13" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.13</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h3 id="dynamic-links_v21-0-2" data-text="Dynamic Links version 21.0.2" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 21.0.2</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="dynamic-links-ktx_21-0-2" data-text="Dynamic Links Kotlin extensions version 21.0.2" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 21.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="dynamic-feature-modules-support_v16-0-0-beta03" data-text="Dynamic feature modules support version 16.0.0-beta03" tabindex="-1">Dynamic feature modules support version 16.0.0-beta03</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h3 id="inappmessaging_v20-1-3" data-text="In-App Messaging version 20.1.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.1.3</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="inappmessaging-ktx_v20-1-3" data-text="In-App Messaging Kotlin extensions version 20.1.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.1.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-1-3" data-text="In-App Messaging Display version 20.1.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.1.3</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="inappmessaging-display-ktx_v20-1-3" data-text="In-App Messaging Display Kotlin extensions version 20.1.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.1.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v17-0-2" data-text="Firebase installations version 17.0.2" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.0.2</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="installations-ktx_v17-0-2" data-text="Firebase installations Kotlin extensions version 17.0.2" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-0-8" data-text="Cloud Messaging version 23.0.8" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.0.8</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="messaging-ktx_v23-0-8" data-text="Cloud Messaging Kotlin extensions version 23.0.8" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.0.8</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-0-8" data-text="Cloud Messaging Direct Boot version 23.0.8" tabindex="-1">Cloud Messaging Direct Boot version 23.0.8</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h3 id="firebaseml-modeldownloader_v24-0-5" data-text="Firebase ML Model Downloader version 24.0.5" tabindex="-1"><span class="notranslate">Firebase ML</span> Model Downloader version 24.0.5</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="firebaseml-modeldownloadert-ktx_v24-0-5" data-text="Firebase ML Kotlin extensions version 24.0.5" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.0.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-1-1" data-text="Performance Monitoring version 20.1.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.1.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="performance-ktx_v20-1-1" data-text="Performance Monitoring Kotlin extensions version 20.1.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="storage_v20-0-2" data-text="Cloud Storage for Firebase version 20.0.2" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 20.0.2</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="storage-ktx_v20-0-2" data-text="Cloud Storage for Firebase Kotlin extensions version 20.0.2" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 20.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-0-6" data-text="Realtime Database version 20.0.6" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.0.6</h3> <ul> <li><p><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</p></li> <li><p><span class="release-fixed"></span> Fixed issue where <code translate="no" dir="ltr">Query.get()</code> was propagating events to listeners on unrelated queries.</p></li> </ul> <h4 id="realtime-database-ktx_v20-0-6" data-text="Realtime Database Kotlin extensions version 20.0.6" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.0.6</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-1-2" data-text="Remote Config version 21.1.2" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.1.2</h3> <ul> <li><span class="release-changed"></span> Updated dependency of <code translate="no" dir="ltr">play-services-basement</code> to its latest version (v18.1.0).</li> </ul> <h4 id="remote-config-ktx_v21-1-2" data-text="Remote Config Kotlin extensions version 21.1.2" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-08-05" data-text="Update - August 05, 2022" tabindex="-1">Update - August 05, 2022</h2> <h3 id="bom_v30-3-2" data-text="Firebase Android BoM (Bill of Materials) version 30.3.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.3.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.3.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.3.2</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.6</td> <td><b>21.0.7</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.6</td> <td><b>21.0.7</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.12</td> <td>18.2.12</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.12</td> <td>18.2.12</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.12</td> <td>18.2.12</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.2.1</td> <td><b>24.2.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.2.1</td> <td><b>24.2.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.6</td> <td><b>23.0.7</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.6</td> <td><b>23.0.7</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.6</td> <td><b>23.0.7</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.4</td> <td>24.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.4</td> <td>24.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v3-0-3" data-text="App Distribution Gradle plugin version 3.0.3" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 3.0.3</h3> <ul> <li><span class="release-deprecated"></span> The <code translate="no" dir="ltr">appDistributionLogin</code> task is deprecated and will be removed in Q1 2023. For more information about alternative ways to authenticate with the <span class="notranslate">App Distribution</span> Gradle plugin, see <a href="/docs/app-distribution/android/distribute-gradle#authenticate">Authenticate with Firebase</a> in the <span class="notranslate">App Distribution</span> documentation.</li> </ul> <h3 id="auth_v21-0-7" data-text="Authentication version 21.0.7" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.7</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue with custom Chrome tabs closing prematurely in <code translate="no" dir="ltr">FirebaseAuth.startActivityForSignInWithProvider</code>.</li> </ul> <h4 id="auth-ktx_v21-0-7" data-text="Authentication Kotlin extensions version 21.0.7" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.7</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-2-2" data-text="Cloud Firestore version 24.2.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.2.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue in <code translate="no" dir="ltr">waitForPendingWrites()</code> that could lead to a <code translate="no" dir="ltr">NullPointerException</code>.</li> </ul> <h4 id="firestore-ktx_v24-2-2" data-text="Cloud Firestore Kotlin extensions version 24.2.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.2.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-0-7" data-text="Cloud Messaging version 23.0.7" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.0.7</h3> <ul> <li><span class="release-changed"></span> Message broadcasts now finish immediately after binding to the service. This change should reduce the chance of ANRs.</li> </ul> <h4 id="messaging-ktx_v23-0-7" data-text="Cloud Messaging Kotlin extensions version 23.0.7" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.0.7</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-0-7" data-text="Cloud Messaging Direct Boot version 23.0.7" tabindex="-1">Cloud Messaging Direct Boot version 23.0.7</h3> <ul> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">minSdkVersion</code> to 19 to match <span class="notranslate">Cloud Messaging</span> <code translate="no" dir="ltr">minSdkVersion</code>.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">FirebaseMessagingDirectBootReceiver</code> to match <span class="notranslate">Cloud Messaging</span> <code translate="no" dir="ltr">FirebaseInstanceIdReceiver</code>.</p></li> <li><p><span class="release-changed"></span> Removed unused dependencies.</p></li> </ul> <h2 id="2022-07-25" data-text="Update - July 25, 2022" tabindex="-1">Update - July 25, 2022</h2> <h3 id="bom_v30-3-1" data-text="Firebase Android BoM (Bill of Materials) version 30.3.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.3.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.3.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.3.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.6</td> <td>21.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.6</td> <td>21.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.1.1</td> <td>21.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.11</td> <td><b>18.2.12</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.11</td> <td><b>18.2.12</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.11</td> <td><b>18.2.12</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.2.1</td> <td>24.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.2.1</td> <td>24.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.6</td> <td>23.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.6</td> <td>23.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.6</td> <td>23.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.4</td> <td>24.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.4</td> <td>24.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v18-2-12" data-text="Crashlytics version 18.2.12" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.12</h3> <ul> <li><span class="release-changed"></span> Internal changes to avoid accessing device-specific information.</li> </ul> <h4 id="crashlytics-ktx_v18-2-12" data-text="Crashlytics Kotlin extensions version 18.2.12" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.12</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-12" data-text="Crashlytics NDK version 18.2.12" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.12</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.12.</li> </ul> <h2 id="2022-07-15" data-text="Update - July 15, 2022" tabindex="-1">Update - July 15, 2022</h2> <h3 id="bom_v30-3-0" data-text="Firebase Android BoM (Bill of Materials) version 30.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.2.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.3.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>21.0.0</td> <td><b>21.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>21.0.0</td> <td><b>21.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.6</td> <td>21.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.6</td> <td>21.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.1.0</td> <td><b>21.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.1.0</td> <td><b>21.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>21.0.0</td> <td><b>21.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.11</td> <td>18.2.11</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.11</td> <td>18.2.11</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.11</td> <td>18.2.11</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.2.0</td> <td><b>24.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.2.0</td> <td><b>24.2.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.6</td> <td>23.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.6</td> <td>23.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.6</td> <td>23.0.6</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.0.3</td> <td><b>24.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.0.3</td> <td><b>24.0.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-1-0" data-text="Analytics version 21.1.0" tabindex="-1"><span class="notranslate">Analytics</span> version 21.1.0</h3> <ul> <li><span class="release-feature"></span> Improved <a href="https://support.google.com/analytics/answer/9213390" class="external">session measurement with user ID</a>.</li> </ul> <h4 id="analytics-ktx_v21-1-0" data-text="Analytics Kotlin extensions version 21.1.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-2-1" data-text="Cloud Firestore version 24.2.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.2.1</h3> <ul> <li><span class="release-changed"></span> Internal refactor and test improvements.</li> </ul> <h4 id="firestore-ktx_v24-2-1" data-text="Cloud Firestore Kotlin extensions version 24.2.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="dynamic-feature-modules-support_v16-0-0-beta02" data-text="Dynamic feature modules support version 16.0.0-beta02" tabindex="-1">Dynamic feature modules support version 16.0.0-beta02</h3> <ul> <li><span class="release-fixed"></span> Migrated to using new <a href="https://developer.android.com/reference/com/google/android/play/core/release-notes#partitioned-apis">partitioned APIs</a>. (<a href="https://github.com/firebase/firebase-android-sdk/issues/3860" class="external">GitHub Issue #3860</a>)</li> </ul> <h3 id="firebaseml-modeldownloader_v24-0-4" data-text="Firebase ML Model Downloader version 24.0.4" tabindex="-1"><span class="notranslate">Firebase ML</span> Model Downloader version 24.0.4</h3> <ul> <li><span class="release-fixed"></span> Fixed a race condition that was caused when differently sized models were concurrently downloaded using this SDK and the Model Downloader from the <code translate="no" dir="ltr">com.google.firebase:firebase-ml-common</code> SDK. (<a href="https://github.com/firebase/firebase-android-sdk/issues/3864" class="external">GitHub Issue #3321</a>)</li> </ul> <h4 id="firebaseml-modeldownloadert-ktx_v24-0-4" data-text="Firebase ML Kotlin extensions version 24.0.4" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-1-1" data-text="Remote Config version 21.1.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that caused HTTP errors in some locales. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/3757" class="external">GitHub Issue #3757</a></li> </ul> <h4 id="remote-config-ktx_v21-1-1" data-text="Remote Config Kotlin extensions version 21.1.1" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-06-28" data-text="Update - June 28, 2022" tabindex="-1">Update - June 28, 2022</h2> <h3 id="google-services_plugin_v4-3-13" data-text="google-services plugin 4.3.13" tabindex="-1">google-services plugin 4.3.13</h3> <ul> <li><span class="release-fixed"></span> Fixed unintended binary incompatibility with the <span class="notranslate">Crashlytics</span> Gradle plugin.</li> </ul> <h2 id="2022-06-23" data-text="Update - June 23, 2022" tabindex="-1">Update - June 23, 2022</h2> <h3 id="bom_v30-2-0" data-text="Firebase Android BoM (Bill of Materials) version 30.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.1.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.2.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.5</td> <td><b>21.0.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.5</td> <td><b>21.0.6</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.11</td> <td>18.2.11</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.11</td> <td>18.2.11</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.11</td> <td>18.2.11</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.1.2</td> <td><b>24.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.1.2</td> <td><b>24.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.5</td> <td><b>23.0.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.5</td> <td><b>23.0.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.5</td> <td><b>23.0.6</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="auth_v21-0-6" data-text="Authentication version 21.0.6" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.6</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">NullPointerException</code> crash.</p></li> <li><p><span class="release-fixed"></span> Addressed a potential cause of an <code translate="no" dir="ltr">OutOfMemoryError</code> crash.</p></li> </ul> <h4 id="auth-ktx_v21-0-6" data-text="Authentication Kotlin extensions version 21.0.6" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.6</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-2-0" data-text="Cloud Firestore version 24.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.2.0</h3> <ul> <li><span class="release-feature"></span> Added customization support for <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runTransaction(com.google.firebase.firestore.Transaction.Function%3CTResult%3E)"><code translate="no" dir="ltr">FirebaseFirestore.runTransaction</code></a>.</li> </ul> <h4 id="firestore-ktx_v24-2-0" data-text="Cloud Firestore Kotlin extensions version 24.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-0-6" data-text="Cloud Messaging version 23.0.6" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.0.6</h3> <ul> <li><p><span class="release-changed"></span> Added the <code translate="no" dir="ltr">POST_NOTIFICATIONS</code> permission to enable posting notifications when targeting SDK level 33. See <span class="notranslate">FCM</span> guidance on how to <a href="/docs/cloud-messaging/android/client#request-permission13">request runtime notification permission on Android 13+</a></p></li> <li><p><span class="release-fixed"></span> Added an annotation to an internal class to fix a missing class warning.</p></li> </ul> <h4 id="messaging-ktx_v23-0-6" data-text="Cloud Messaging Kotlin extensions version 23.0.6" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.0.6</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-0-6" data-text="Cloud Messaging Direct Boot version 23.0.6" tabindex="-1">Cloud Messaging Direct Boot version 23.0.6</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-0-6"><span class="notranslate">Cloud Messaging</span> v23.0.6 release notes</a>.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-9-1" data-text="Crashlytics Gradle plugin version 2.9.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.1</h3> <ul> <li><p><span class="release-changed"></span> Improved debugging output to help clarify native symbol file build IDs.</p></li> <li><p><span class="release-changed"></span> Added support for uploading Flutter <code translate="no" dir="ltr">.symbols</code> files.</p></li> </ul> <h3 id="google-services_plugin_v4-3-12" data-text="google-services plugin 4.3.12" tabindex="-1">google-services plugin 4.3.12</h3> <ul> <li><span class="release-fixed"></span> Improved compatibility with AGP 7.1+. (<a href="https://github.com/google/play-services-plugins/pull/232" class="external">GitHub PR #180</a>)</li> </ul> <h3 id="strict-version-matching_plugin_v1-2-4" data-text="strict-version-matching plugin 1.2.4" tabindex="-1">strict-version-matching plugin 1.2.4</h3> <ul> <li><span class="release-fixed"></span> Improved configuration caching.</li> <li><span class="release-fixed"></span> Improved compatibility with AGP 7.1+.</li> </ul> <h2 id="2022-05-26" data-text="Update - May 26, 2022" tabindex="-1">Update - May 26, 2022</h2> <h3 id="bom_v30-1-0" data-text="Firebase Android BoM (Bill of Materials) version 30.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.0.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.1.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.4</td> <td><b>21.0.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.4</td> <td><b>21.0.5</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.10</td> <td><b>18.2.11</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.10</td> <td><b>18.2.11</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.10</td> <td><b>18.2.11</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.5</td> <td>23.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.5</td> <td>23.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.5</td> <td>23.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.0.6</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.0.6</td> <td><b>20.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="app-distro_v16-0-0-beta03" data-text="App Distribution version 16.0.0-beta03" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta03</h3> <ul> <li><p><span class="release-feature"></span> The <span class="notranslate">App Distribution</span> SDK has been split into two libraries:</p> <ul> <li><p><code translate="no" dir="ltr">firebase-appdistribution-api</code> - The API-only library<br> This new API-only library is functional only when the full <span class="notranslate">App Distribution</span> SDK implementation (<code translate="no" dir="ltr">firebase-appdistribution</code>) is present. <code translate="no" dir="ltr">firebase-appdistribution-api</code> can be included in all <a href="https://developer.android.com/studio/build/build-variants" class="external">build variants</a>.</p></li> <li><p><code translate="no" dir="ltr">firebase-appdistribution</code> - The full SDK implementation<br> This full SDK implementation is optional and should only be included in pre-release builds.</p></li> </ul> <p>Visit the documentation to learn how to <a href="/docs/app-distribution/set-up-alerts?platform=android#add-appdistro">add these SDKs</a> to your Android app.</p></li> </ul> <h3 id="app-distro-ktx_removed" data-text="App Distribution Kotlin extensions" tabindex="-1"><span class="notranslate">App Distribution</span> Kotlin extensions</h3> <ul> <li><span class="release-removed"></span> The Kotlin extensions library <code translate="no" dir="ltr">firebase-appdistribution-ktx</code> has been removed. All its functionality has been moved to the new API-only library: <code translate="no" dir="ltr">firebase-appdistribution-api-ktx</code>.</li> </ul> <h3 id="app-distro-api_v16-0-0-beta03" data-text="App Distribution API version 16.0.0-beta03" tabindex="-1"><span class="notranslate">App Distribution</span> API version 16.0.0-beta03</h3> <ul> <li><p><span class="release-feature"></span> The <span class="notranslate">App Distribution</span> SDK has been split into two libraries:</p> <ul> <li><p><code translate="no" dir="ltr">firebase-appdistribution-api</code> - The API-only library<br> This new API-only library is functional only when the full <span class="notranslate">App Distribution</span> SDK implementation (<code translate="no" dir="ltr">firebase-appdistribution</code>) is present. <code translate="no" dir="ltr">firebase-appdistribution-api</code> can be included in all <a href="https://developer.android.com/studio/build/build-variants" class="external">build variants</a>.</p></li> <li><p><code translate="no" dir="ltr">firebase-appdistribution</code> - The full SDK implementation<br> This full SDK implementation is optional and should only be included in pre-release builds.</p></li> </ul> <p>Visit the documentation to learn how to <a href="/docs/app-distribution/set-up-alerts?platform=android#add-appdistro">add these SDKs</a> to your Android app.</p></li> </ul> <h3 id="app-distro-api-ktx_v16-0-0-beta03" data-text="App Distribution API Kotlin extensions version 16.0.0-beta03" tabindex="-1"><span class="notranslate">App Distribution</span> API Kotlin extensions version 16.0.0-beta03</h3> <p>With the removal of the Kotlin extensions library <code translate="no" dir="ltr">firebase-appdistribution-ktx</code>, its functionality has been moved to the new API-only library: <code translate="no" dir="ltr">firebase-appdistribution-api-ktx</code>.</p> <p>This new Kotlin extensions library transitively includes the <code translate="no" dir="ltr">firebase-appdistribution-api</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appdistro_gradle_plugin_v3-0-2" data-text="App Distribution Gradle plugin version 3.0.2" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 3.0.2</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">Could not read content</code> issue when the task is given absolute file paths as parameters for the <code translate="no" dir="ltr">appDistributionUpload</code> task on Windows.</li> </ul> <h3 id="auth_v21-0-5" data-text="Authentication version 21.0.5" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.5</h3> <ul> <li><span class="release-fixed"></span> Bumped the <code translate="no" dir="ltr">androidx.browser</code> dependency version.</li> </ul> <h4 id="auth-ktx_v21-0-5" data-text="Authentication Kotlin extensions version 21.0.5" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-2-11" data-text="Crashlytics version 18.2.11" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.11</h3> <ul> <li><span class="release-changed"></span> Improved crash reporting reliability for multi-process apps on Android 28 and above.</li> </ul> <h4 id="crashlytics-ktx_v18-2-11" data-text="Crashlytics Kotlin extensions version 18.2.11" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.11</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-11" data-text="Crashlytics NDK version 18.2.11" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.11</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.11.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-9-0" data-text="Crashlytics Gradle plugin version 2.9.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.9.0</h3> <ul> <li><p><span class="release-changed"></span> Improved debugging output, for improved clarity of native symbol file build IDs.</p></li> <li><p><span class="release-changed"></span> Added new, internal interfaces that enable future integrations with command-line tooling.</p></li> <li><p><span class="release-changed"></span> Internal refactor to remove dead code and obsolete features.</p></li> </ul> <h3 id="performance_v20-1-0" data-text="Performance Monitoring version 20.1.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for out-of-the-box measurement of screen performance metrics for <a href="//developer.android.com/guide/fragments" class="external">Fragments</a>. For more details, visit <a href="/docs/perf-mon/screen-traces?platform=android">Learn about screen rendering performance data</a>.</p></li> <li><p><span class="release-fixed"></span> Fixed a bug where screen traces were not capturing frame metrics for multi-Activity apps.</p></li> <li><p><span class="release-fixed"></span> Excluded custom attributes that have key/value lengths of 0.</p></li> </ul> <h4 id="performance-ktx_v20-1-0" data-text="Performance Monitoring Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-05-19" data-text="Update - May 19, 2022" tabindex="-1">Update - May 19, 2022</h2> <h3 id="bom_v30-0-2" data-text="Firebase Android BoM (Bill of Materials) version 30.0.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.0.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.0.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.0.2</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.4</td> <td>21.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.4</td> <td>21.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.10</td> <td>18.2.10</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.10</td> <td>18.2.10</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.10</td> <td>18.2.10</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.4</td> <td><b>23.0.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.4</td> <td><b>23.0.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.4</td> <td><b>23.0.5</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="messaging_v23-0-5" data-text="Cloud Messaging version 23.0.5" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.0.5</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a dependency on the <code translate="no" dir="ltr">firebase-datatransport</code> layer. (<a href="https://github.com/firebase/firebase-android-sdk/issues/3716" class="external">GitHub #3716</a>)</p></li> <li><p><span class="release-fixed"></span> Upgraded logging priority for message delivery events to avoid dropped logs.</p></li> </ul> <h4 id="messaging-ktx_v23-0-5" data-text="Cloud Messaging Kotlin extensions version 23.0.5" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.0.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-0-5" data-text="Cloud Messaging Direct Boot version 23.0.5" tabindex="-1">Cloud Messaging Direct Boot version 23.0.5</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-0-5"><span class="notranslate">Cloud Messaging</span> v23.0.5 release notes</a>.</li> </ul> <h2 id="2022-05-12" data-text="Update - May 12, 2022" tabindex="-1">Update - May 12, 2022</h2> <h3 id="bom_v30-0-1" data-text="Firebase Android BoM (Bill of Materials) version 30.0.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.0.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v30.0.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.0.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug-testing</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-debug</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-playintegrity</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck-safetynet</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appcheck</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.3</td> <td><b>21.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.3</td> <td><b>21.0.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.10</td> <td>18.2.10</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.10</td> <td>18.2.10</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.10</td> <td>18.2.10</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.5</td> <td>20.0.5</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.1.2</td> <td>24.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.4</td> <td>23.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.4</td> <td>23.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.4</td> <td>23.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="auth_v21-0-4" data-text="Authentication version 21.0.4" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.4</h3> <ul> <li><span class="release-fixed"></span> Fixed a regression where connecting to the <span class="notranslate">Firebase Authentication</span> emulator sometimes fails.</li> </ul> <h4 id="auth-ktx_v21-0-4" data-text="Authentication Kotlin extensions version 21.0.4" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-05-06" data-text="Update - May 06, 2022" tabindex="-1">Update - May 06, 2022</h2> <h3 id="bom_v30-0-0" data-text="Firebase Android BoM (Bill of Materials) version 30.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 30.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.3.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v30.0.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>20.1.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>20.1.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug-testing</b></td> <td>N/A</td> <td><b>16.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-debug</b></td> <td>N/A</td> <td><b>16.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-playintegrity</b></td> <td>N/A</td> <td><b>16.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck-safetynet</b></td> <td>N/A</td> <td><b>16.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appcheck</b></td> <td>N/A</td> <td><b>16.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.3</td> <td>21.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.3</td> <td>21.0.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.0.2</td> <td><b>21.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.0.2</td> <td><b>21.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>20.1.2</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.9</td> <td><b>18.2.10</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.9</td> <td><b>18.2.10</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.9</td> <td><b>18.2.10</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.0.4</td> <td><b>20.0.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.0.4</td> <td><b>20.0.5</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.1.1</td> <td><b>24.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.1.1</td> <td><b>24.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.0.2</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.0.2</td> <td><b>20.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.3</td> <td><b>23.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.3</td> <td><b>23.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.3</td> <td><b>23.0.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="analytics_v21-0-0" data-text="Analytics version 21.0.0" tabindex="-1"><span class="notranslate">Analytics</span> version 21.0.0</h3> <ul> <li><p><span class="release-removed"></span> <strong>BREAKING CHANGE:</strong> Removed deprecated ecommerce constants. Visit the <span class="notranslate">Analytics</span> documentation to learn more about <a href="/docs/analytics/measure-ecommerce">measuring ecommerce</a> with Google Analytics 4.</p> <ul> <li>The following constants were removed from <code translate="no" dir="ltr">FirebaseAnalytics.Event</code>:</li> <li><code translate="no" dir="ltr">CHECKOUT_PROGRESS</code></li> <li><code translate="no" dir="ltr">ECOMMERCE_PURCHASE</code></li> <li><code translate="no" dir="ltr">PRESENT_OFFER</code></li> <li><code translate="no" dir="ltr">PURCHASE_REFUND</code></li> <li><p><code translate="no" dir="ltr">SET_CHECKOUT_OPTION</code></p></li> <li><p>The following constants were removed from <code translate="no" dir="ltr">FirebaseAnalytics.Param</code>:</p></li> <li><p><code translate="no" dir="ltr">CHECKOUT_OPTION</code></p></li> <li><p><code translate="no" dir="ltr">CHECKOUT_STEP</code></p></li> <li><p><code translate="no" dir="ltr">ITEM_LIST</code></p></li> <li><p><code translate="no" dir="ltr">ITEM_LOCATION_ID</code></p></li> <li><p><code translate="no" dir="ltr">SIGN_UP_METHOD</code></p></li> </ul></li> </ul> <h4 id="analytics-ktx_v21-0-0" data-text="Analytics Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck_v16-0-0" data-text="App Check version 16.0.0" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.0</h3> <ul> <li><p><span class="release-changed"></span> <span class="notranslate">App Check</span> has exited beta and is now generally available for use.</p></li> <li><p><span class="release-feature"></span> Added support for <a href="https://developer.android.com/google/play/integrity">Play Integrity</a> as an attestation provider.</p></li> </ul> <h3 id="appcheck-debug_v16-0-0" data-text="App Check Debug version 16.0.0" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.0</h3> <ul> <li><span class="release-changed"></span> <span class="notranslate">App Check</span> has exited beta and is now generally available for use.</li> </ul> <h3 id="appcheck-debug-testing_v16-0-0" data-text="App Check Debug Testing version 16.0.0" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.0</h3> <ul> <li><span class="release-changed"></span> <span class="notranslate">App Check</span> has exited beta and is now generally available for use.</li> </ul> <h3 id="appcheck-playintegrity_v16-0-0" data-text="App Check Play Integrity version 16.0.0" tabindex="-1"><span class="notranslate">App Check</span> Play Integrity version 16.0.0</h3> <ul> <li><span class="release-feature"></span> Added support for <a href="https://developer.android.com/google/play/integrity">Play Integrity</a> as an attestation provider.</li> </ul> <h3 id="appcheck-safetynet_v16-0-0" data-text="App Check SafetyNet version 16.0.0" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.0</h3> <ul> <li><span class="release-changed"></span> <span class="notranslate">App Check</span> has exited beta and is now generally available for use.</li> </ul> <h3 id="firestore_v24-1-2" data-text="Cloud Firestore version 24.1.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.1.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where patching multiple fields shadows each other. (<a href="https://github.com/firebase/firebase-android-sdk/issues/3528" class="external">GitHub Issue #3528</a>).</li> </ul> <h4 id="firestore-ktx_v24-1-2" data-text="Cloud Firestore Kotlin extensions version 24.1.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v20-1-0" data-text="Cloud Functions for Firebase Client SDK version 20.1.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.1.0</h3> <ul> <li><span class="release-feature"></span> Added a new method <a href="/docs/reference/android/com/google/firebase/functions/FirebaseFunctions#public-httpscallablereference-gethttpscallablefromurl-url-url"><code translate="no" dir="ltr">getHttpsCallableFromUrl(java.net.URL)</code></a> to create callables with URLs.</li> </ul> <h4 id="functions-client-ktx_v20-1-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-0-5" data-text="Realtime Database version 20.0.5" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.0.5</h3> <ul> <li><span class="release-fixed"></span> <code translate="no" dir="ltr">Query.get</code> no longer throws &quot;Client is offline&quot; exception when local value is not available. Instead, it waits for a backend connection.</li> </ul> <h4 id="realtime-database-ktx_v20-0-5" data-text="Realtime Database Kotlin extensions version 20.0.5" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.0.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-1-0" data-text="Remote Config version 21.1.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.1.0</h3> <aside class="caution">This version contains a bug that causes HTTP errors in some locales. We recommend updating to the latest version (v21.1.1+) which contains a fix. For more information, see <a href="https://github.com/firebase/firebase-android-sdk/issues/3757" class="external">GitHub Issue #3757</a> </aside> <ul> <li><span class="release-changed"></span> Added first-open time to <span class="notranslate">Remote Config</span> server requests.</li> </ul> <h4 id="remote-config-ktx_v21-1-0" data-text="Remote Config Kotlin extensions version 21.1.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-04-27" data-text="Update - April 27, 2022" tabindex="-1">Update - April 27, 2022</h2> <h3 id="crashlytics_v18-2-10" data-text="Crashlytics version 18.2.10" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.10</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a bug that could prevent unhandled exceptions from being propagated to the default handler when the network is unavailable.</p></li> <li><p><span class="release-changed"></span> Internal changes to support on-demand fatal crash reporting for Flutter apps.</p></li> <li><p><span class="release-fixed"></span> Fixed a bug that prevented <span class="notranslate">Crashlytics</span> from initializing on some devices in some cases. (<a href="//github.com/firebase/firebase-android-sdk/issues/3269" class="external">GitHub Issue #3269</a>)</p></li> </ul> <h4 id="crashlytics-ktx_v18-2-10" data-text="Crashlytics Kotlin extensions version 18.2.10" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.10</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-10" data-text="Crashlytics NDK version 18.2.10" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.10</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.10.</li> </ul> <h2 id="2022-04-14" data-text="Update - April 14, 2022" tabindex="-1">Update - April 14, 2022</h2> <h3 id="bom_v29-3-1" data-text="Firebase Android BoM (Bill of Materials) version 29.3.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.3.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.3.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.3.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.3</td> <td>21.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.3</td> <td>21.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.1.0</td> <td><b>24.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.1.0</td> <td><b>24.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.2</td> <td><b>23.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.2</td> <td><b>23.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.2</td> <td><b>23.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="appcheck_v16-0-0-beta06" data-text="App Check version 16.0.0-beta06" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.0-beta06</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug in the <span class="notranslate">App Check</span> token refresh flow when using a custom provider.</li> </ul> <h3 id="appcheck-debug_v16-0-0-beta06" data-text="App Check Debug version 16.0.0-beta06" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.0-beta06</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug in the <span class="notranslate">App Check</span> token refresh flow when using a custom provider.</li> </ul> <h3 id="appcheck-debug-testing_v16-0-0-beta06" data-text="App Check Debug Testing version 16.0.0-beta06" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.0-beta06</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug in the <span class="notranslate">App Check</span> token refresh flow when using a custom provider.</li> </ul> <h3 id="appcheck-safetynet_v16-0-0-beta06" data-text="App Check SafetyNet version 16.0.0-beta06" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.0-beta06</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug in the <span class="notranslate">App Check</span> token refresh flow when using a custom provider.</li> </ul> <h3 id="app-distro_v16-0-0-beta02" data-text="App Distribution version 16.0.0-beta02" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta02</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a bug that prevented testers from signing in when the app had an underscore in the package name.</p></li> <li><p><span class="release-fixed"></span> Fixed a UI bug where the APK download notification displayed the incorrect error message.</p></li> <li><p><span class="release-changed"></span> Internal improvements to tests.</p></li> </ul> <h4 id="app-distro-ktx_v16-0-0-beta02" data-text="App Distribution Kotlin extensions version 16.0.0-beta02" tabindex="-1"><span class="notranslate">App Distribution</span> Kotlin extensions version 16.0.0-beta02</h4> <p>The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-app-distribution</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-1-1" data-text="Cloud Firestore version 24.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.1.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue in the beta version of the index engine that might cause <span class="notranslate">Cloud Firestore</span> to exclude document results for limit queries with local modifications.</p></li> <li><p><span class="release-changed"></span> <span class="notranslate">Cloud Firestore</span> can now serialize objects with <code translate="no" dir="ltr">android.net.Uri</code>s.</p></li> </ul> <h4 id="firestore-ktx_v24-1-1" data-text="Cloud Firestore Kotlin extensions version 24.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-0-3" data-text="Cloud Messaging version 23.0.3" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.0.3</h3> <ul> <li><p><span class="release-fixed"></span> Removed test resources from library.</p></li> <li><p><span class="release-fixed"></span> Changed to catch <code translate="no" dir="ltr">RuntimeException</code> when getting the <code translate="no" dir="ltr">Bundle</code> from an <code translate="no" dir="ltr">Activity Intent</code> while checking for notification analytics data.</p></li> <li><p><span class="release-changed"></span> Internal changes to notification building methods.</p></li> </ul> <h4 id="messaging-ktx_v23-0-3" data-text="Cloud Messaging Kotlin extensions version 23.0.3" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-0-3" data-text="Cloud Messaging Direct Boot version 23.0.3" tabindex="-1">Cloud Messaging Direct Boot version 23.0.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-0-3"><span class="notranslate">Cloud Messaging</span> v23.0.3 release notes</a>.</li> </ul> <h2 id="2022-03-24" data-text="Update - March 24, 2022" tabindex="-1">Update - March 24, 2022</h2> <h3 id="bom_v29-3-0" data-text="Firebase Android BoM (Bill of Materials) version 29.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.2.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.3.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.2</td> <td><b>21.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.2</td> <td><b>21.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.0.2</td> <td><b>24.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.0.2</td> <td><b>24.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.2</td> <td>23.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.2</td> <td>23.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.2</td> <td>23.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="analytics_v20-1-2" data-text="Analytics version 20.1.2" tabindex="-1"><span class="notranslate">Analytics</span> version 20.1.2</h3> <ul> <li><p><span class="release-feature"></span> Added support for data collection customization.</p></li> <li><p><span class="release-feature"></span> Added <a href="https://support.google.com/analytics/answer/11479699" class="external"><span class="notranslate">Analytics</span> Merchant Center</a> results measurement to improve ecommerce reporting.</p></li> </ul> <h4 id="analytics-ktx_v20-1-2" data-text="Analytics Kotlin extensions version 20.1.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 20.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck_v16-0-0-beta05" data-text="App Check version 16.0.0-beta05" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.0-beta05</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="appcheck-debug_v16-0-0-beta05" data-text="App Check Debug version 16.0.0-beta05" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.0-beta05</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="appcheck-debug-testing_v16-0-0-beta05" data-text="App Check Debug Testing version 16.0.0-beta05" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.0-beta05</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="appcheck-safetynet_v16-0-0-beta05" data-text="App Check SafetyNet version 16.0.0-beta05" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.0-beta05</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="auth_v21-0-3" data-text="Authentication version 21.0.3" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.3</h3> <ul> <li><p><span class="release-changed"></span> Started to collect the <a href="/docs/android/play-data-disclosure#firebase-user-agent"><em>Firebase user agent</em></a> for <span class="notranslate">Firebase Authentication</span>.</p></li> <li><p><span class="release-fixed"></span> Fixed a regression in the provider linking flow.</p></li> </ul> <h4 id="auth-ktx_v21-0-3" data-text="Authentication Kotlin extensions version 21.0.3" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-1-0" data-text="Cloud Firestore version 24.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added beta support for indexed query execution. You can enable indexes by invoking <code translate="no" dir="ltr">FirebaseFirestore.setIndexConfiguration()</code> with the JSON index definition exported by the <span class="notranslate">Firebase</span> CLI. Queries against the cache are executed using an index once the asynchronous index generation completes.</p></li> <li><p><span class="release-fixed"></span> Fixed missing document fields issue with offline overlays. (<a href="https://github.com/firebase/firebase-android-sdk/issues/3528" class="external">GitHub Issue #3528</a>).</p></li> </ul> <h4 id="firestore-ktx_v24-1-0" data-text="Cloud Firestore Kotlin extensions version 24.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-03-17" data-text="Update - March 17, 2022" tabindex="-1">Update - March 17, 2022</h2> <h3 id="bom_v29-2-1" data-text="Firebase Android BoM (Bill of Materials) version 29.2.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.2.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.2.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.2.1</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.2</td> <td>21.0.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.9</td> <td>18.2.9</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.0.2</td> <td>24.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.0.2</td> <td>24.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.2</td> <td>20.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.1</td> <td>17.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.1</td> <td><b>23.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.1</td> <td><b>23.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.1</td> <td><b>23.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.3</td> <td>24.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.6</td> <td>20.0.6</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.1</td> <td>20.0.1</td> </tr> </tbody> </table> </section> <h3 id="analytics_v20-1-1" data-text="Analytics version 20.1.1" tabindex="-1"><span class="notranslate">Analytics</span> version 20.1.1</h3> <ul> <li><span class="release-feature"></span> Added support to automatically include the <code translate="no" dir="ltr">com.google.android.gms.permission.AD_ID</code> permission in the SDK&#39;s manifest which is automatically merged into the app&#39;s manifest by Android build tools. To learn more about the <code translate="no" dir="ltr">AD_ID</code> permission declaration, including how to disable it, refer to this <a href="https://support.google.com/googleplay/android-developer/answer/6048248" class="external">Play Console Help article</a>.</li> </ul> <h4 id="analytics-ktx_v20-1-1" data-text="Analytics Kotlin extensions version 20.1.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 20.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-0-2" data-text="Cloud Messaging version 23.0.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.0.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where the messaging component in the <span class="notranslate">Firebase Android BoM</span> leaked the <code translate="no" dir="ltr">httpcomponents</code> transitive dependencies.</li> </ul> <h4 id="messaging-ktx_v23-0-2" data-text="Cloud Messaging Kotlin extensions version 23.0.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-0-2" data-text="Cloud Messaging Direct Boot version 23.0.2" tabindex="-1">Cloud Messaging Direct Boot version 23.0.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where the messaging component in the <span class="notranslate">Firebase Android BoM</span> leaked the <code translate="no" dir="ltr">httpcomponents</code> transitive dependencies.</li> </ul> <h2 id="2022-03-10" data-text="Update - March 10, 2022" tabindex="-1">Update - March 10, 2022</h2> <aside class="note" id="basement18-0-0_base18-0-1_tasks18-0-1">With this release, several Firebase libraries updated their dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively), <div class="expandable"> <p class="showalways"> Learn more about the changes associated with this dependency update </p> <ul> <li>Strict nullability annotations (<code translate="no" dir="ltr">@NonNull</code> and <code translate="no" dir="ltr">@Nullable</code>) are now being used where previously <code translate="no" dir="ltr">@RecentlyNonNull</code> and <code translate="no" dir="ltr">@RecentlyNullable</code> were used. With this change, what once caused a nullness warning will now cause an error when building Kotlin code or using Java <code translate="no" dir="ltr">null</code> checking frameworks. </li> <li>Removed deprecated fitness constants from <a href="https://developers.google.com/android/reference/com/google/android/gms/common/Scopes" class="external"><code translate="no" dir="ltr">Scopes</code></a>. </li> <li>Added <a href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Tasks#withTimeout(com.google.android.gms.tasks.Task&lt;T&gt;,%20long,%20java.util.concurrent.TimeUnit)" class="external"><code translate="no" dir="ltr">withTimeout()</code></a> utilty method to <a href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Tasks" class="external"><code translate="no" dir="ltr">Tasks</code></a>. </li> </ul> </div> </aside> <h3 id="bom_v29-2-0" data-text="Firebase Android BoM (Bill of Materials) version 29.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.1.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.2.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.1</td> <td><b>21.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.1</td> <td><b>21.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>20.0.0</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>20.0.0</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.0.1</td> <td><b>21.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.0.1</td> <td><b>21.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.8</td> <td><b>18.2.9</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.8</td> <td><b>18.2.9</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.8</td> <td><b>18.2.9</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.0.3</td> <td><b>20.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.0.3</td> <td><b>20.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.0.1</td> <td><b>24.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.0.1</td> <td><b>24.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.1.1</td> <td><b>20.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>17.0.0</td> <td><b>17.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>17.0.0</td> <td><b>17.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>23.0.0</td> <td><b>23.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>23.0.0</td> <td><b>23.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>23.0.0</td> <td><b>23.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.0.2</td> <td><b>24.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.0.2</td> <td><b>24.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.0.5</td> <td><b>20.0.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.0.5</td> <td><b>20.0.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> </tbody> </table> </section> <h3 id="ab-testing_v21-0-1" data-text="A/B Testing version 21.0.1" tabindex="-1"><span class="notranslate">A/B Testing</span> version 21.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h3 id="app-distro_v16-0-0-beta01" data-text="App Distribution version 16.0.0-beta01" tabindex="-1"><span class="notranslate">App Distribution</span> version 16.0.0-beta01</h3> <ul> <li><span class="release-feature"></span> The <span class="notranslate">App Distribution</span> Android SDK is now available in beta. You can use this SDK to notify testers in-app when a new test build is available. To learn more, visit the <a href="/docs/reference/android/com/google/firebase/appdistribution/package-summary"><span class="notranslate">App Distribution</span> reference documentation</a>.</li> </ul> <h4 id="app-distro-ktx_v16-0-0-beta01" data-text="App Distribution Kotlin extensions version 16.0.0-beta01" tabindex="-1"><span class="notranslate">App Distribution</span> Kotlin extensions version 16.0.0-beta01</h4> <p>The <span class="notranslate">App Distribution</span> Android library with Kotlin extensions is now available in beta. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-app-distribution</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/appdistribution/ktx/package-summary"><span class="notranslate">App Distribution</span> KTX reference documentation</a>.</p> <h3 id="appdistro_gradle_plugin_v3-0-1" data-text="App Distribution Gradle plugin version 3.0.1" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 3.0.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">Missing app id</code> issue when the app uses the <code translate="no" dir="ltr">google-services</code> plugin.</p></li> <li><p><span class="release-fixed"></span> Fixed issue where using <code translate="no" dir="ltr">artifactPath</code> failed when configuration cache was enabled.</p></li> <li><p><span class="release-fixed"></span> Fixed issue where <code translate="no" dir="ltr">artifactPath</code> was using the path of the <code translate="no" dir="ltr">build.gradle</code> file instead of the project root as the root for relative paths.</p></li> </ul> <h3 id="auth_v21-0-2" data-text="Authentication version 21.0.2" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a bug that was causing a memory leak in <span class="notranslate">Firebase Authentication</span>.</p></li> <li><p><span class="release-changed"></span> Started to collect the Firebase Android App ID of the app (this is not the app&#39;s package name). This value is included in the header of each request.</p></li> </ul> <h4 id="auth-ktx_v21-0-2" data-text="Authentication Kotlin extensions version 21.0.2" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-0-2" data-text="Cloud Firestore version 24.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.0.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a <span class="notranslate">Firebase App Check</span> issue that caused <span class="notranslate">Cloud Firestore</span> listeners to stop working and receive a <code translate="no" dir="ltr">Permission Denied</code> error. This issue only occurred if the <span class="notranslate">App Check</span> expiration time was set to under an hour.</p></li> <li><p><span class="release-fixed"></span> Fixed a potential problem during the shutdown of <span class="notranslate">Cloud Firestore</span> that prevented the shutdown from proceeding if a network connection was opened right before.</p></li> <li><p><span class="release-fixed"></span> Fixed an NPE issue where mutations with multiple documents were not handled correctly during previous mutation acknowledgement. (<a href="https://github.com/firebase/firebase-android-sdk/issues/3490" class="external">GitHub Isse #3490</a>).</p></li> <li><p><span class="release-changed"></span> Queries are now sent to the backend before the SDK starts local processing, which reduces overall query latency.</p></li> <li><p><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</p></li> </ul> <h4 id="firestore-ktx_v24-0-2" data-text="Cloud Firestore Kotlin extensions version 24.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v20-0-2" data-text="Cloud Functions for Firebase Client SDK version 20.0.2" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.0.2</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="functions-client-ktx_v20-0-2" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.0.2" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-0-1" data-text="Cloud Messaging version 23.0.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.0.1</h3> <ul> <li><p><span class="release-changed"></span> Updated to the latest version of the <code translate="no" dir="ltr">firebase-datatransport</code> library.</p></li> <li><p><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</p></li> <li><p><span class="release-fixed"></span> On Android 7.0 and earlier, the SDK now logs that a notification was opened after <code translate="no" dir="ltr">onActivityCreated</code> to avoid a race condition when unparceling the extras Bundle.</p></li> <li><p><span class="release-fixed"></span> Switched to stopping an image download by canceling a <code translate="no" dir="ltr">Future</code> to interrupt the download thread. This change avoids errors that can occur in the image downloading library when trying to close the stream on a different thread than the one that started the download.</p></li> <li><p><span class="release-fixed"></span> Fixed reference documentation for <a href="/docs/reference/android/com/google/firebase/messaging/RemoteMessage#public-string-getmessageid"><code translate="no" dir="ltr">RemoteMessage.getMessageId()</code></a> and updated obsolete references to Google Cloud Messaging (GCM).</p></li> </ul> <h4 id="messaging-ktx_v23-0-1" data-text="Cloud Messaging Kotlin extensions version 23.0.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-0-1" data-text="Cloud Messaging Direct Boot version 23.0.1" tabindex="-1">Cloud Messaging Direct Boot version 23.0.1</h3> <ul> <li><p><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</p></li> <li><p><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-0-1"><span class="notranslate">Cloud Messaging</span> v23.0.1 release note</a>.</p></li> </ul> <h3 id="crashlytics_v18-2-9" data-text="Crashlytics version 18.2.9" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.9</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="crashlytics-ktx_v18-2-9" data-text="Crashlytics Kotlin extensions version 18.2.9" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.9</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-9" data-text="Crashlytics NDK version 18.2.9" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.9</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.9.</li> </ul> <h3 id="dynamic-links_v21-0-1" data-text="Dynamic Links version 21.0.1" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 21.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="dynamic-links-ktx_21-0-1" data-text="Dynamic Links Kotlin extensions version 21.0.1" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 21.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v20-1-2" data-text="In-App Messaging version 20.1.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.1.2</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="inappmessaging-ktx_v20-1-2" data-text="In-App Messaging Kotlin extensions version 20.1.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-1-2" data-text="In-App Messaging Display version 20.1.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.1.2</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="inappmessaging-display-ktx_v20-1-2" data-text="In-App Messaging Display Kotlin extensions version 20.1.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v17-0-1" data-text="Firebase installations version 17.0.1" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="installations-ktx_v17-0-1" data-text="Firebase installations Kotlin extensions version 17.0.1" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firebaseml-modeldownloader_v24-0-3" data-text="Firebase ML Model Downloader version 24.0.3" tabindex="-1"><span class="notranslate">Firebase ML</span> Model Downloader version 24.0.3</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="firebaseml-modeldownloadert-ktx_v24-0-3" data-text="Firebase ML Kotlin extensions version 24.0.3" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-0-6" data-text="Performance Monitoring version 20.0.6" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.0.6</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a null pointer exception (NPE) when instrumenting network requests. (<a href="//github.com/firebase/firebase-android-sdk/issues/3406" class="external">GitHub Issue #3406</a>)</p></li> <li><p><span class="release-fixed"></span> Fixed a bug where incorrect session IDs were associated with some foreground and background traces.</p></li> <li><p><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</p></li> </ul> <h4 id="performance-ktx_v20-0-6" data-text="Performance Monitoring Kotlin extensions version 20.0.6" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.0.6</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-0-4" data-text="Realtime Database version 20.0.4" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.0.4</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="realtime-database-ktx_v20-0-4" data-text="Realtime Database Kotlin extensions version 20.0.4" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-0-2" data-text="Remote Config version 21.0.2" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.0.2</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="remote-config-ktx_v21-0-2" data-text="Remote Config Kotlin extensions version 21.0.2" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="storage_v20-0-1" data-text="Cloud Storage for Firebase version 20.0.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 20.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-basement</code>, <code translate="no" dir="ltr">play-services-base</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the <a href="#basement18-0-0_base18-0-1_tasks18-0-1">note</a> at the top of this release entry.</li> </ul> <h4 id="storage-ktx_v20-0-1" data-text="Cloud Storage for Firebase Kotlin extensions version 20.0.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 20.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-02-11" data-text="Update - February 11, 2022" tabindex="-1">Update - February 11, 2022</h2> <h3 id="bom_v29-1-0" data-text="Firebase Android BoM (Bill of Materials) version 29.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.0.4</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.1.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>20.0.2</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>20.0.2</td> <td><b>20.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>20.0.2</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.7</td> <td><b>18.2.8</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.7</td> <td><b>18.2.8</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.7</td> <td><b>18.2.8</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.0.1</td> <td><b>24.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.0.1</td> <td><b>24.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.0.4</td> <td><b>20.0.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.0.4</td> <td><b>20.0.5</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v20-1-0" data-text="Analytics version 20.1.0" tabindex="-1"><span class="notranslate">Analytics</span> version 20.1.0</h3> <ul> <li><p><span class="release-feature"></span> Enhanced campaign attribution. You can now include more traffic source dimension details in <span class="notranslate">Google Analytics</span> reporting. Learn more in the <a href="https://support.google.com/analytics/answer/11242870" class="external"><span class="notranslate">Analytics</span> Help Center</a>.</p></li> <li><p><span class="release-feature"></span> Improved support for DCLID collection. You can now attribute conversions from Display &amp; Video 360 and Search Ads 360 with <span class="notranslate">Google Analytics</span>.</p></li> </ul> <h4 id="analytics-ktx_v20-1-0" data-text="Analytics Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-2-8" data-text="Crashlytics version 18.2.8" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.8</h3> <ul> <li><span class="release-changed"></span> Updated to the latest version of the <code translate="no" dir="ltr">firebase-datatransport</code> library.</li> </ul> <h4 id="crashlytics-ktx_v18-2-8" data-text="Crashlytics Kotlin extensions version 18.2.8" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.8</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-8" data-text="Crashlytics NDK version 18.2.8" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.8</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.8.</li> </ul> <h3 id="firebaseml-modeldownloader_v24-0-2" data-text="Firebase ML Model Downloader version 24.0.2" tabindex="-1"><span class="notranslate">Firebase ML</span> Model Downloader version 24.0.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <code translate="no" dir="ltr">FirebaseModelDownloader.getInstance</code> would crash when using non-default FirebaseApp instances. (<a href="https://github.com/firebase/firebase-android-sdk/issues/3321" class="external">GitHub Issue #3321</a>)</li> <li><span class="release-changed"></span> Updated to the latest version of the <code translate="no" dir="ltr">firebase-datatransport</code> library.</li> </ul> <h4 id="firebaseml-modeldownloadert-ktx_v24-0-2" data-text="Firebase ML Kotlin extensions version 24.0.2" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-0-5" data-text="Performance Monitoring version 20.0.5" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.0.5</h3> <ul> <li><span class="release-feature"></span> Enabled global custom attributes for network request traces.</li> <li><span class="release-fixed"></span> Updated log statement to differentiate an event being dropped due to rate limiting and sampling.</li> </ul> <h4 id="performance-ktx_v20-0-5" data-text="Performance Monitoring Kotlin extensions version 20.0.5" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.0.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2022-01-20" data-text="Update - January 20, 2022" tabindex="-1">Update - January 20, 2022</h2> <h3 id="bom_v29-0-4" data-text="Firebase Android BoM (Bill of Materials) version 29.0.4" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.0.4</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.0.3</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.0.4</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.6</td> <td><b>18.2.7</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.6</td> <td><b>18.2.7</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.6</td> <td><b>18.2.7</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>24.0.0</td> <td><b>24.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>24.0.0</td> <td><b>24.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v3-0-0" data-text="App Distribution Gradle plugin version 3.0.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 3.0.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for running the <code translate="no" dir="ltr">appDistributionUpload</code> task with configuration cache enabled.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change</strong>: Updated command-line overrides to be in the form <nobr><code translate="no" dir="ltr">-<var translate="no">PROPERTY_NAME</var>=<var translate="no">PROPERTY_VALUE</var></code></nobr>. Command line overrides in the form <nobr><code translate="no" dir="ltr">-PappDistribution-<var translate="no">PROPERTY_NAME</var>=<var translate="no">PROPERTY_VALUE</var></code></nobr> will no longer work.</p></li> <li><p><span class="release-removed"></span> Removed the deprecated <code translate="no" dir="ltr">apkPath</code> property.</p></li> </ul> <h3 id="firestore_v24-0-1" data-text="Cloud Firestore version 24.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.0.1</h3> <ul> <li><p><span class="release-changed"></span> Optimized performance for offline usage.</p></li> <li><p><span class="release-changed"></span> Optimized performance for queries with collections that contain subcollections.</p></li> </ul> <h4 id="firestore-ktx_v24-0-1" data-text="Cloud Firestore Kotlin extensions version 24.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-2-7" data-text="Crashlytics version 18.2.7" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.7</h3> <ul> <li><span class="release-changed"></span> Improved runtime efficiency of the <a href="/docs/crashlytics/customize-crash-reports?platform=android#add-keys"><code translate="no" dir="ltr">setCustomKey</code> functions</a>, significantly reducing the number of <code translate="no" dir="ltr">Task</code> objects and disk writes when keys are updated frequently. (<a href="/support/release-notes/github.com/firebase/firebase-android-sdk/pull/3254" class="external">GitHub PR #3254</a>)</li> <li><span class="release-fixed"></span> Fixed a StrictMode <code translate="no" dir="ltr">DiskReadViolation</code>. (<a href="//github.com/firebase/firebase-android-sdk/issues/3265" class="external">GitHub Issue #3265</a>)</li> </ul> <h4 id="crashlytics-ktx_v18-2-7" data-text="Crashlytics Kotlin extensions version 18.2.7" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.7</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-7" data-text="Crashlytics NDK version 18.2.7" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.7</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.7.</li> </ul> <h3 id="performance_gradle_plugin_v1-4-1" data-text="Performance Monitoring Gradle plugin version 1.4.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Gradle plugin version 1.4.1</h3> <ul> <li><span class="release-changed"></span> Migrated away from the deprecated Android Gradle plugin APIs.</li> </ul> <h2 id="2021-12-16" data-text="Update - December 16, 2021" tabindex="-1">Update - December 16, 2021</h2> <h3 id="bom_v29-0-3" data-text="Firebase Android BoM (Bill of Materials) version 29.0.3" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.0.3</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.0.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.0.3</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.6</td> <td>18.2.6</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.6</td> <td>18.2.6</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.6</td> <td>18.2.6</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v20-0-2" data-text="Analytics version 20.0.2" tabindex="-1"><span class="notranslate">Analytics</span> version 20.0.2</h3> <ul> <li><span class="release-fixed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-base</code> and <code translate="no" dir="ltr">play-services-tasks</code> to their latest version (v18.0.1) which resolves the <a href="https://issuetracker.google.com/issues/210908929" class="external">issue</a> that can lead to runtime NPEs (<code translate="no" dir="ltr">NullPointerException</code>) when handling <code translate="no" dir="ltr">Task&lt;Void&gt;</code> results in Kotlin code.</li> </ul> <h4 id="analytics-ktx_v20-0-2" data-text="Analytics Kotlin extensions version 20.0.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 20.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-12-10" data-text="Update - December 10, 2021" tabindex="-1">Update - December 10, 2021</h2> <aside class="warning">The <span class="notranslate">Analytics</span> libraries released with this update have known issues that can lead to runtime NPEs (<code translate="no" dir="ltr">NullPointerException</code>) when handling <code translate="no" dir="ltr">Task&lt;Void&gt;</code> results in Kotlin code. The latest release on <a href="#2021-12-16">December 16, 2021</a> includes the fix that resolves this issue, so we strongly recommend using the versions of the <span class="notranslate">Analytics</span> library or the <span class="notranslate">Firebase Android BoM</span> that are included with that release. You can find all other progress updates in this <a href="https://issuetracker.google.com/issues/210908929">public issue</a>. </aside> <h3 id="bom_v29-0-2" data-text="Firebase Android BoM (Bill of Materials) version 29.0.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.0.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.0.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.0.2</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.5</td> <td><b>18.2.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.5</td> <td><b>18.2.6</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.5</td> <td><b>18.2.6</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.1</td> <td>24.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v20-0-1" data-text="Analytics version 20.0.1" tabindex="-1"><span class="notranslate">Analytics</span> version 20.0.1</h3> <ul> <li><span class="release-changed"></span> Updated dependencies of <code translate="no" dir="ltr">play-services-base</code>, <code translate="no" dir="ltr">play-services-basement</code>, and <code translate="no" dir="ltr">play-services-tasks</code> to their latest version (v18.0.0). For more information, see their <a href="https://developers.google.com/android/guides/releases#december_09_2021" class="external">release note</a>.</li> </ul> <h4 id="analytics-ktx_v20-0-1" data-text="Analytics Kotlin extensions version 20.0.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 20.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-2-6" data-text="Crashlytics version 18.2.6" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.6</h3> <ul> <li><span class="release-changed"></span> Internal changes to support future improvements to Flutter crash reporting.</li> </ul> <h4 id="crashlytics-ktx_v18-2-6" data-text="Crashlytics Kotlin extensions version 18.2.6" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.6</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-6" data-text="Crashlytics NDK version 18.2.6" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.6</h3> <ul> <li><p><span class="release-changed"></span> Updated internal Crashpad version to commit <code translate="no" dir="ltr">281ba7</code>. With this change, disabling tagged pointers is no longer required, so the following can be removed from your manifest&#39;s <code translate="no" dir="ltr">application</code> tag: <code translate="no" dir="ltr">android:allowNativeHeapPointerTagging=false</code>.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.6.</p></li> </ul> <h2 id="2021-11-30" data-text="Update - November 30, 2021" tabindex="-1">Update - November 30, 2021</h2> <h3 id="bom_v29-0-1" data-text="Firebase Android BoM (Bill of Materials) version 29.0.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.0.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v29.0.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.0.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.4</td> <td><b>18.2.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.4</td> <td><b>18.2.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.4</td> <td><b>18.2.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.0.2</td> <td><b>20.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.0.2</td> <td><b>20.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>24.0.0</td> <td><b>24.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>24.0.0</td> <td><b>24.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.0.3</td> <td><b>20.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.0.3</td> <td><b>20.0.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="appcheck_v16-0-0-beta04" data-text="App Check version 16.0.0-beta04" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.0-beta04</h3> <ul> <li><p><span class="release-changed"></span> Improved error handling logic by minimizing the amount of requests that are unlikely to succeed.</p></li> <li><p><span class="release-fixed"></span> Fixed heartbeat reporting.</p></li> </ul> <h3 id="appcheck-debug_v16-0-0-beta04" data-text="App Check Debug version 16.0.0-beta04" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.0-beta04</h3> <ul> <li><p><span class="release-changed"></span> Improved error handling logic by minimizing the amount of requests that are unlikely to succeed.</p></li> <li><p><span class="release-fixed"></span> Fixed heartbeat reporting.</p></li> </ul> <h3 id="appcheck-debug-testing_v16-0-0-beta04" data-text="App Check Debug Testing version 16.0.0-beta04" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.0-beta04</h3> <ul> <li><p><span class="release-changed"></span> Improved error handling logic by minimizing the amount of requests that are unlikely to succeed.</p></li> <li><p><span class="release-fixed"></span> Fixed heartbeat reporting.</p></li> </ul> <h3 id="appcheck-safetynet_v16-0-0-beta04" data-text="App Check SafetyNet version 16.0.0-beta04" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.0-beta04</h3> <ul> <li><p><span class="release-changed"></span> Improved error handling logic by minimizing the amount of requests that are unlikely to succeed.</p></li> <li><p><span class="release-fixed"></span> Fixed heartbeat reporting.</p></li> </ul> <h3 id="crashlytics_v18-2-5" data-text="Crashlytics version 18.2.5" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.5</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that prevented some <span class="notranslate">Crashlytics</span> session files from being removed after the session ended. All session-specific files are now properly cleaned up.</li> <li><span class="release-changed"></span> Internal improvements to <span class="notranslate">Crashlytics</span> file management, to ensure consistent creation and removal of intermediate <span class="notranslate">Crashlytics</span> files.</li> </ul> <h4 id="crashlytics-ktx_v18-2-5" data-text="Crashlytics Kotlin extensions version 18.2.5" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-5" data-text="Crashlytics NDK version 18.2.5" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.5</h3> <ul> <li><p><span class="release-changed"></span> Internal improvements to <span class="notranslate">Crashlytics</span> file management, to ensure consistent creation and removal of intermediate <span class="notranslate">Crashlytics</span> files.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.5.</p></li> </ul> <h3 id="crashlytics_gradle_plugin_v2-8-1" data-text="Crashlytics Gradle plugin version 2.8.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.8.1</h3> <ul> <li><p><span class="release-changed"></span> Published the <a href="https://docs.gradle.org/current/userguide/plugins.html#sec:plugin_markers" class="external">plugin marker artifact</a> for the <span class="notranslate">Crashlytics</span> Gradle plugin. Starting with this version, the <span class="notranslate">Crashlytics</span> Gradle plugin can now be applied using the <code translate="no" dir="ltr">plugins {}</code> DSL block.</p></li> <li><p><span class="release-fixed"></span> Fixed a bug that resulted in incorrect prioritization of <code translate="no" dir="ltr">firebaseCrashlytics</code> properties when using multiple flavor dimensions. Exension properties are now prioritized based on the order in which the dimensions are declared in the <code translate="no" dir="ltr">flavorDimensions</code> property, as described in the <a href="https://developer.android.com/studio/build/build-variants#flavor-dimensions" class="external">Android Gradle plugin documentation</a>.</p></li> </ul> <h3 id="firebaseml-modeldownloader_v24-0-1" data-text="Firebase ML Model Downloader version 24.0.1" tabindex="-1"><span class="notranslate">Firebase ML</span> Model Downloader version 24.0.1</h3> <ul> <li><span class="release-fixed"></span> Added support for Android API key restrictions.</li> </ul> <h3 id="performance_v20-0-4" data-text="Performance Monitoring version 20.0.4" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.0.4</h3> <ul> <li><span class="release-changed"></span> Improved <span class="notranslate">Performance Monitoring</span> start up time by 25%. This improvement was achieved by moving some component initialization to background threads.</li> </ul> <h4 id="performance-ktx_v20-0-4" data-text="Performance Monitoring Kotlin extensions version 20.0.4" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-0-3" data-text="Realtime Database version 20.0.3" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.0.3</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that prevented the SDK from connecting to the backend if a credential refresh was unsuccessful.</li> </ul> <h4 id="realtime-database-ktx_v20-0-3" data-text="Realtime Database Kotlin extensions version 20.0.3" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-10-29" data-text="Update - October 29, 2021" tabindex="-1">Update - October 29, 2021</h2> <aside class="warning"><b>Breaking change:</b> The following Firebase Android SDKs now require devices and emulators to target API level 19 (KitKat) or higher and to use Android 4.4 or higher. For more details, refer to each SDK's release note. <table class="columns"> <tr> <td><span class="notranslate">Google Analytics</span></td> <td><span class="notranslate">Cloud Firestore</span></td> <td><span class="notranslate">Firebase Cloud Messaging</span></td> <td><span class="notranslate">Firebase Dynamic Links</span></td> </tr> </table> </aside> <h3 id="bom_v29-0-0" data-text="Firebase Android BoM (Bill of Materials) version 29.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 29.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.4.2</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v29.0.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>19.0.2</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>19.0.2</td> <td><b>20.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>19.0.2</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.3</td> <td><b>18.2.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.3</td> <td><b>18.2.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.3</td> <td><b>18.2.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>20.1.1</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>20.1.1</td> <td><b>21.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>23.0.4</td> <td><b>24.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>23.0.4</td> <td><b>24.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>22.0.0</td> <td><b>23.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>22.0.0</td> <td><b>23.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>22.0.0</td> <td><b>23.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v20-0-0" data-text="Analytics version 20.0.0" tabindex="-1"><span class="notranslate">Analytics</span> version 20.0.0</h3> <ul> <li><span class="release-changed"></span> Due to its <a href="/docs/android/android-play-services">dependency on Google Play services</a>, this SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use Android 4.4 or higher.</li> </ul> <h4 id="analytics-ktx_v20-0-0" data-text="Analytics Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v24-0-0" data-text="Cloud Firestore version 24.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 24.0.0</h3> <ul> <li><p><span class="release-changed"></span> This SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use Android 4.4 or higher. This is due to an update in its gRPC dependency version and to align with requirements of other Firebase libraries.</p></li> <li><p><span class="release-feature"></span> Added support for <span class="notranslate">Firebase App Check</span>.</p></li> </ul> <h4 id="firestore-ktx_v24-0-0" data-text="Cloud Firestore Kotlin extensions version 24.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 24.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v23-0-0" data-text="Cloud Messaging version 23.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 23.0.0</h3> <ul> <li><p><span class="release-changed"></span> Due to its <a href="/docs/android/android-play-services">dependency on Google Play services</a>, this SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use Android 4.4 or higher.</p></li> <li><p><span class="release-feature"></span> Added methods for determining and controlling whether Google Play services is set as the app’s notification delegate. By default, FCM will now set Google Play services as the app’s notification delegate so that it is allowed to display notifications for the app. This could be used in the future to show an app’s notifications without needing to start the app, which may improve message reliability and timeliness.</p></li> </ul> <h4 id="messaging-ktx_v23-0-0" data-text="Cloud Messaging Kotlin extensions version 23.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 23.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v23-0-0" data-text="Cloud Messaging Direct Boot version 23.0.0" tabindex="-1">Cloud Messaging Direct Boot version 23.0.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v23-0-0"><span class="notranslate">Cloud Messaging</span> v23.0.0 release notes</a>.</li> </ul> <h3 id="crashlytics_v18-2-4" data-text="Crashlytics version 18.2.4" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.4</h3> <ul> <li><span class="release-changed"></span> Internal changes to support ANR collection and their upcoming display in the console.</li> </ul> <h4 id="crashlytics-ktx_v18-2-4" data-text="Crashlytics Kotlin extensions version 18.2.4" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-4" data-text="Crashlytics NDK version 18.2.4" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.4</h3> <ul> <li><p><span class="release-changed"></span> Added an obfuscation exclusion for <code translate="no" dir="ltr">com.google.firebase.crashlytics.ndk.FirebaseCrashlyticsNdk</code> to the Proguard configuration for this AAR, to avoid potential reflection errors when obfuscating NDK-enabled apps.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.4.</p></li> </ul> <h3 id="crashlytics_gradle_plugin_v2-8-0" data-text="Crashlytics Gradle plugin version 2.8.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.8.0</h3> <ul> <li><p><span class="release-changed"></span> NDK symbols are now extracted using the Breakpad symbol file generator by default. No developer action is required to take advantage of this feature.</p> <ul> <li>If you previously added the <code translate="no" dir="ltr">symbolGenerator { breakpad() }</code> block to your build configuration to use Breakpad, you can remove it, but this change is not required.</li> <li>If you want to use the legacy cSYM symbol file generator, add <code translate="no" dir="ltr">symbolGenerator { csym() }</code> to your build&#39;s <code translate="no" dir="ltr">firebaseCrashlytics</code> extension.</li> </ul></li> </ul> <h3 id="dynamic-links_v21-0-0" data-text="Dynamic Links version 21.0.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> Due to its <a href="/docs/android/android-play-services">dependency on Google Play services</a>, this SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use Android 4.4 or higher.</p></li> <li><p><span class="release-fixed"></span> Fixed non-null annotation. <a href="https://github.com/firebase/firebase-android-sdk/issues/2336" class="external">GitHub Issue #2336</a> </p></li> </ul> <h4 id="dynamic-links-ktx_21-0-0" data-text="Dynamic Links Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v20-1-1" data-text="In-App Messaging version 20.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.1.1</h3> <ul> <li><span class="release-changed"></span> Updated the gRPC dependency version.</li> </ul> <h4 id="inappmessaging-ktx_v20-1-1" data-text="In-App Messaging Kotlin extensions version 20.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-1-1" data-text="In-App Messaging Display version 20.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.1.1</h3> <ul> <li><span class="release-changed"></span> Updated the gRPC dependency version.</li> </ul> <h4 id="inappmessaging-display-ktx_v20-1-1" data-text="In-App Messaging Display Kotlin extensions version 20.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-10-04" data-text="Update - October 04, 2021" tabindex="-1">Update - October 04, 2021</h2> <h3 id="bom_v28-4-2" data-text="Firebase Android BoM (Bill of Materials) version 28.4.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.4.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.4.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.4.2</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>19.0.1</td> <td><b>19.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>19.0.1</td> <td><b>19.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>19.0.1</td> <td><b>19.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.1</td> <td><b>18.2.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.1</td> <td><b>18.2.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.1</td> <td><b>18.2.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>23.0.3</td> <td><b>23.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>23.0.3</td> <td><b>23.0.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.0.2</td> <td><b>20.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.0.2</td> <td><b>20.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v19-0-2" data-text="Analytics version 19.0.2" tabindex="-1"><span class="notranslate">Analytics</span> version 19.0.2</h3> <ul> <li><span class="release-changed"></span> Enabled support to <a href="http://support.google.com/analytics/answer/10085872" class="external">modify and create events</a> on devices without Google Play services.</li> </ul> <h4 id="analytics-ktx_v19-0-2" data-text="Analytics Kotlin extensions version 19.0.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 19.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appcheck_v16-0-0-beta03" data-text="App Check version 16.0.0-beta03" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.0-beta03</h3> <ul> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">X-Android-Package</code> and <code translate="no" dir="ltr">X-Android-Cert</code> request headers to <span class="notranslate">App Check</span> network calls.</li> </ul> <h3 id="appcheck-debug_v16-0-0-beta03" data-text="App Check Debug version 16.0.0-beta03" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.0-beta03</h3> <ul> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">X-Android-Package</code> and <code translate="no" dir="ltr">X-Android-Cert</code> request headers to <span class="notranslate">App Check</span> network calls.</li> </ul> <h3 id="appcheck-debug-testing_v16-0-0-beta03" data-text="App Check Debug Testing version 16.0.0-beta03" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.0-beta03</h3> <ul> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">X-Android-Package</code> and <code translate="no" dir="ltr">X-Android-Cert</code> request headers to <span class="notranslate">App Check</span> network calls.</li> </ul> <h3 id="appcheck-safetynet_v16-0-0-beta03" data-text="App Check SafetyNet version 16.0.0-beta03" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.0-beta03</h3> <ul> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">X-Android-Package</code> and <code translate="no" dir="ltr">X-Android-Cert</code> request headers to <span class="notranslate">App Check</span> network calls.</li> </ul> <h3 id="firestore_v23-0-4" data-text="Cloud Firestore version 23.0.4" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 23.0.4</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where some fields were missed when copying in the <code translate="no" dir="ltr">FirebaseFirestoreSettings.Builder</code> copy constructor.</li> </ul> <h4 id="firestore-ktx_v23-0-4" data-text="Cloud Firestore Kotlin extensions version 23.0.4" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 23.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-2-3" data-text="Crashlytics version 18.2.3" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.3</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a race condition that prevented some launch-time crashes from being reported to Crashlytics.</p></li> <li><p><span class="release-changed"></span> Internal changes to support upcoming Unity crash reporting improvements.</p></li> </ul> <h4 id="crashlytics-ktx_v18-2-3" data-text="Crashlytics Kotlin extensions version 18.2.3" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-3" data-text="Crashlytics NDK version 18.2.3" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.3</h3> <ul> <li><p><span class="release-changed"></span> Internal changes to support upcoming Unity crash reporting improvements.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.3.</p></li> </ul> <h3 id="performance_v20-0-3" data-text="Performance Monitoring version 20.0.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.0.3</h3> <ul> <li><span class="release-changed"></span> <span class="notranslate">Performance Monitoring</span> now has a random delay of 5 to 30 seconds before fetching <span class="notranslate">Remote Config</span> upon app startup.</li> <li><span class="release-fixed"></span> Added a validation to stop screen traces with 0 total frames from being sent to the backend.</li> </ul> <h4 id="performance-ktx_v20-0-3" data-text="Performance Monitoring Kotlin extensions version 20.0.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-09-13" data-text="Update - September 13, 2021" tabindex="-1">Update - September 13, 2021</h2> <h3 id="bom_v28-4-1" data-text="Firebase Android BoM (Bill of Materials) version 28.4.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.4.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.4.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.4.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>19.0.1</td> <td>19.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>19.0.1</td> <td>19.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>19.0.1</td> <td>19.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.1</td> <td>18.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.1</td> <td>18.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.1</td> <td>18.2.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>23.0.3</td> <td>23.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>23.0.3</td> <td>23.0.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v2-2-0" data-text="App Distribution Gradle plugin version 2.2.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 2.2.0</h3> <ul> <li><p><span class="release-feature"></span> Added support to manage testers in your project from Gradle using the <code translate="no" dir="ltr">appDistributionAddTesters</code> and <code translate="no" dir="ltr">appDistributionRemoveTesters</code> commands. Refer to the command output for instructions on how to use these features.</p></li> <li><p><span class="release-changed"></span> Increased the time that we poll for a new release after uploading a binary to 5 minutes.</p></li> </ul> <h3 id="functions-client_v20-0-1" data-text="Cloud Functions for Firebase Client SDK version 20.0.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that prevented functions from proceeding after <span class="notranslate">App Check</span> failures.</li> </ul> <h4 id="functions-client-ktx_v20-0-1" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.0.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-0-2" data-text="Realtime Database version 20.0.2" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.0.2</h3> <ul> <li><span class="release-fixed"></span> The SDK can now continue to issue writes for apps that send invalid <span class="notranslate">App Check</span> tokens if <span class="notranslate">App Check</span> enforcement is not enabled.</li> </ul> <h4 id="realtime-database-ktx_v20-0-2" data-text="Realtime Database Kotlin extensions version 20.0.2" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-08-20" data-text="Update - August 20, 2021" tabindex="-1">Update - August 20, 2021</h2> <h3 id="bom_v28-4-0" data-text="Firebase Android BoM (Bill of Materials) version 28.4.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.4.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.3.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.4.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>19.0.0</td> <td><b>19.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>19.0.0</td> <td><b>19.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>19.0.0</td> <td><b>19.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.2.1</td> <td>18.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.2.1</td> <td>18.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.2.1</td> <td>18.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>23.0.3</td> <td>23.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>23.0.3</td> <td>23.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>20.0.0</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>20.0.0</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>20.0.0</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>20.0.0</td> <td><b>20.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="analytics_v19-0-1" data-text="Analytics version 19.0.1" tabindex="-1"><span class="notranslate">Analytics</span> version 19.0.1</h3> <ul> <li><span class="release-changed"></span> Internal code cleanup.</li> </ul> <h4 id="analytics-ktx_v19-0-1" data-text="Analytics Kotlin extensions version 19.0.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 19.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v20-1-0" data-text="In-App Messaging version 20.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.1.0</h3> <ul> <li><span class="release-changed"></span> Migrated to Glide library for image downloading.</li> </ul> <h4 id="inappmessaging-ktx_v20-1-0" data-text="In-App Messaging Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-1-0" data-text="In-App Messaging Display version 20.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.1.0</h3> <ul> <li><span class="release-changed"></span> Migrated to Glide library for image downloading.</li> </ul> <h4 id="inappmessaging-display-ktx_v20-1-0" data-text="In-App Messaging Display Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-08-09" data-text="Update - August 09, 2021" tabindex="-1">Update - August 09, 2021</h2> <h3 id="google-services_plugin_v4-3-10" data-text="google-services plugin 4.3.10" tabindex="-1">google-services plugin 4.3.10</h3> <ul> <li><span class="release-fixed"></span> Fixed bug where configuration avoidance allowed the <code translate="no" dir="ltr">processGoogleServices</code> task to either not run or crash on configuration. (GitHub <a href="https://github.com/firebase/firebase-android-sdk/issues/2894" class="external">Issue #2894</a>, <a href="https://github.com/google/play-services-plugins/issues/196" class="external">Issue #196</a>, <a href="https://github.com/google/play-services-plugins/issues/197" class="external">Issue #197</a>)</li> </ul> <h2 id="2021-08-05" data-text="Update - August 05, 2021" tabindex="-1">Update - August 05, 2021</h2> <h3 id="bom_v28-3-1" data-text="Firebase Android BoM (Bill of Materials) version 28.3.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.3.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.3.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.3.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.2.0</td> <td><b>18.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.2.0</td> <td><b>18.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.2.0</td> <td><b>18.2.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>20.1.1</td> <td>20.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>23.0.3</td> <td>23.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>23.0.3</td> <td>23.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v18-2-1" data-text="Crashlytics version 18.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">ConcurrentModificationException</code> that could be logged to logcat when setting multiple custom key/values in rapid succession.</li> </ul> <h4 id="crashlytics-ktx_v18-2-1" data-text="Crashlytics Kotlin extensions version 18.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-1" data-text="Crashlytics NDK version 18.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.1</h3> <ul> <li><p><span class="release-fixed"></span> Improved support for NDK crash reporting when using <a href="/docs/android/learn-more#dynamic-feature-modules">Play Feature Delivery</a>. Previously, <code translate="no" dir="ltr">firebase-crashlytics-ndk</code> needed to be a dependency of the app module to consistently report native crashes for all supported Android versions. <span class="notranslate">Crashlytics</span> will now report native crashes when used as a dependency of a feature module.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.1.</p></li> </ul> <h3 id="remote-config_v21-0-1" data-text="Remote Config version 21.0.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug in the initialization of <span class="notranslate">Remote Config</span> with a non-primary Firebase app.</li> </ul> <h4 id="remote-config-ktx_v21-0-1" data-text="Remote Config Kotlin extensions version 21.0.1" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="google-services_plugin_v4-3-9" data-text="google-services plugin 4.3.9" tabindex="-1">google-services plugin 4.3.9</h3> <ul> <li><span class="release-feature"></span> Added configuration avoidance to plugin. (<a href="https://github.com/google/play-services-plugins/issues/180" class="external">GitHub Issue #180</a>)</li> </ul> <h2 id="2021-07-22" data-text="Update - July 22, 2021" tabindex="-1">Update - July 22, 2021</h2> <h3 id="bom_v28-3-0" data-text="Firebase Android BoM (Bill of Materials) version 28.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.2.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.3.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.1.0</td> <td><b>18.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.1.0</td> <td><b>18.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.1.0</td> <td><b>18.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>20.1.0</td> <td><b>20.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>23.0.2</td> <td><b>23.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>23.0.2</td> <td><b>23.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="firestore_v23-0-3" data-text="Cloud Firestore version 23.0.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 23.0.3</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that was causing failures when a data bundle with multi-byte Unicode characters was loaded.</li> </ul> <h4 id="firestore-ktx_v23-0-3" data-text="Cloud Firestore Kotlin extensions version 23.0.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 23.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-2-0" data-text="Crashlytics version 18.2.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.2.0</h3> <ul> <li><span class="release-changed"></span> Internal changes.</li> </ul> <h4 id="crashlytics-ktx_v18-2-0" data-text="Crashlytics Kotlin extensions version 18.2.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-2-0" data-text="Crashlytics NDK version 18.2.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.2.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.2.0.</li> </ul> <h3 id="dynamic-links_v20-1-1" data-text="Dynamic Links version 20.1.1" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 20.1.1</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="dynamic-links-ktx_20-1-1" data-text="Dynamic Links Kotlin extensions version 20.1.1" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 20.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v20-0-1" data-text="Realtime Database version 20.0.1" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that prevented clients from connecting to the backend when the app used <span class="notranslate">App Check</span> without <span class="notranslate">Authentication</span>.</li> </ul> <h4 id="realtime-database-ktx_v20-0-1" data-text="Realtime Database Kotlin extensions version 20.0.1" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-07-09" data-text="Update - July 09, 2021" tabindex="-1">Update - July 09, 2021</h2> <h3 id="bom_v28-2-1" data-text="Firebase Android BoM (Bill of Materials) version 28.2.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.2.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.2.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.2.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.1.0</td> <td>18.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.1.0</td> <td>18.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.1.0</td> <td>18.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>23.0.1</td> <td><b>23.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>23.0.1</td> <td><b>23.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="appcheck_v16-0-0-beta02" data-text="App Check version 16.0.0-beta02" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.0-beta02</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getAppCheckToken(boolean)"><code translate="no" dir="ltr">getAppCheckToken()</code></a>, <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener"><code translate="no" dir="ltr">AppCheckTokenListener</code></a>, and associated setters and removers for developers to request and observe changes to the <span class="notranslate">App Check</span> token.</li> </ul> <h3 id="appcheck-debug_v16-0-0-beta02" data-text="App Check Debug version 16.0.0-beta02" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.0-beta02</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getAppCheckToken(boolean)"><code translate="no" dir="ltr">getAppCheckToken()</code></a>, <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener"><code translate="no" dir="ltr">AppCheckTokenListener</code></a>, and associated setters and removers for developers to request and observe changes to the <span class="notranslate">App Check</span> token.</li> </ul> <h3 id="appcheck-debug-testing_v16-0-0-beta02" data-text="App Check Debug Testing version 16.0.0-beta02" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.0-beta02</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getAppCheckToken(boolean)"><code translate="no" dir="ltr">getAppCheckToken()</code></a>, <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener"><code translate="no" dir="ltr">AppCheckTokenListener</code></a>, and associated setters and removers for developers to request and observe changes to the <span class="notranslate">App Check</span> token.</li> </ul> <h3 id="appcheck-safetynet_v16-0-0-beta02" data-text="App Check SafetyNet version 16.0.0-beta02" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.0-beta02</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getAppCheckToken(boolean)"><code translate="no" dir="ltr">getAppCheckToken()</code></a>, <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener"><code translate="no" dir="ltr">AppCheckTokenListener</code></a>, and associated setters and removers for developers to request and observe changes to the <span class="notranslate">App Check</span> token.</li> </ul> <h3 id="firestore_v23-0-2" data-text="Cloud Firestore version 23.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 23.0.2</h3> <ul> <li><span class="release-changed"></span> Improved Firestore&#39;s network condition detection.</li> </ul> <h4 id="firestore-ktx_v23-0-2" data-text="Cloud Firestore Kotlin extensions version 23.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 23.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-0-2" data-text="Performance Monitoring version 20.0.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.0.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed inaccurate calculation of screen activity metrics for multi-activity apps. (<a href="//github.com/firebase/firebase-android-sdk/issues/2672" class="external">GitHub Issue #2672</a>)</p> <aside class="note"><strong>Note:</strong><span> You may see some changes in data for frozen frames and slow rendering metrics.</span></aside></li> <li><p><span class="release-fixed"></span> Fixed issue where screen traces were not being tracked for Android API levels 23 and below.</p></li> </ul> <h4 id="performance-ktx_v20-0-2" data-text="Performance Monitoring Kotlin extensions version 20.0.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-06-23" data-text="Update - June 23, 2021" tabindex="-1">Update - June 23, 2021</h2> <h3 id="bom_v28-2-0" data-text="Firebase Android BoM (Bill of Materials) version 28.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.1.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.2.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.0.1</td> <td><b>18.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.0.1</td> <td><b>18.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.0.1</td> <td><b>18.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>20.1.0</td> <td>20.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>23.0.1</td> <td>23.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>23.0.1</td> <td>23.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v2-1-3" data-text="App Distribution Gradle plugin version 2.1.3" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 2.1.3</h3> <ul> <li><span class="release-fixed"></span> Fixed an error (<code translate="no" dir="ltr">java.lang.ClassNotFoundException: com.android.build.gradle.internal.scope.InternalArtifactType$BUNDLE</code>) that occurred when using the Android Gradle plugin v7.0-beta1.</li> </ul> <h3 id="crashlytics_v18-1-0" data-text="Crashlytics version 18.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to support upcoming Unity features.</li> </ul> <h4 id="crashlytics-ktx_v18-1-0" data-text="Crashlytics Kotlin extensions version 18.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-1-0" data-text="Crashlytics NDK version 18.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.1.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.1.0.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-7-1" data-text="Crashlytics Gradle plugin version 2.7.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.7.1</h3> <ul> <li><span class="release-fixed"></span> Fixed bug that could result in a &quot;Task not found&quot; error for the <code translate="no" dir="ltr">uploadCrashlyticsSymbolFile</code> task when using product flavors.</li> </ul> <h2 id="2021-06-03" data-text="Update - June 03, 2021" tabindex="-1">Update - June 03, 2021</h2> <h3 id="bom_v28-1-0" data-text="Firebase Android BoM (Bill of Materials) version 28.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.0.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.1.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>18.0.0</td> <td><b>18.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>18.0.0</td> <td><b>18.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>18.0.0</td> <td><b>18.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>20.0.0</td> <td><b>20.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>20.0.0</td> <td><b>20.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>23.0.0</td> <td><b>23.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>23.0.0</td> <td><b>23.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="firestore_v23-0-1" data-text="Cloud Firestore version 23.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 23.0.1</h3> <ul> <li><span class="release-changed"></span> The SDK now tries to immediately establish a connection to the backend when the app enters the foreground.</li> </ul> <h4 id="firestore-ktx_v23-0-1" data-text="Cloud Firestore Kotlin extensions version 23.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 23.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-0-1" data-text="Crashlytics version 18.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that could prevent proper removal of <span class="notranslate">Crashlytics</span> NDK crash report files when crash reporting is disabled, resulting in excessive disk use.</li> </ul> <h4 id="crashlytics-ktx_v18-0-1" data-text="Crashlytics Kotlin extensions version 18.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-0-1" data-text="Crashlytics NDK version 18.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.0.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.0.1, which fixes a bug that could cause excessive disk usage from NDK crash report files when crash reporting is disabled.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-7-0" data-text="Crashlytics Gradle plugin version 2.7.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.7.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for new argument types to <code translate="no" dir="ltr">unstrippedNativeLibsDir</code>, used for NDK symbol generation and uploading. The override now accepts any arguments allowable for <a href="//docs.gradle.org/current/javadoc/org/gradle/api/Project.html#files-java.lang.Object...-" class="external"><code translate="no" dir="ltr">org.gradle.api.Project#files(Object...)</code></a>, including <code translate="no" dir="ltr">java.lang.String</code>, <code translate="no" dir="ltr">java.io.File</code>, and <code translate="no" dir="ltr">org.gradle.api.file.FileCollection</code>. You can specify multiple directories for a single build flavor by providing a list or <code translate="no" dir="ltr">FileCollection</code> instance.</p></li> <li><p><span class="release-changed"></span> The <span class="notranslate">Crashlytics</span> Gradle plugin now prints a warning recommending removal of the <code translate="no" dir="ltr">strippedNativeLibsDir</code> property, which was formerly required when using the <code translate="no" dir="ltr">unstrippedNativeLibsDir</code> property. <code translate="no" dir="ltr">strippedNativeLibsDir</code> is no longer used and should be removed from your build configuration.</p></li> <li><p><span class="release-changed"></span> The <span class="notranslate">Crashlytics</span> Gradle plugin&#39;s dependency on the <code translate="no" dir="ltr">google-services</code> plugin has been modified to depend on task outputs from <code translate="no" dir="ltr">google-services</code> rather than depend directly on the <code translate="no" dir="ltr">google-services</code> task itself. This change (1) resolves a warning that &quot;execution optimizations have been disabled&quot; for <code translate="no" dir="ltr">MappingFileUploadTask</code> and <code translate="no" dir="ltr">SymbolFileUploadTask</code> when building with Gradle 7 and (2) makes it easier to override the input for those tasks for apps that don&#39;t use the <code translate="no" dir="ltr">google-services</code> plugin.</p></li> <li><p><span class="release-fixed"></span> Modified the Breakpad symbol generator binary to be globally executable and to statically link against standard libraries, which should resolve build errors for NDK developers using Docker-based CI systems.</p></li> </ul> <h3 id="dynamic-links_v20-1-0" data-text="Dynamic Links version 20.1.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 20.1.0</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">getUtmParameters</code> method to <code translate="no" dir="ltr">PendingDynamicLinkData</code>.</li> </ul> <h4 id="dynamic-links-ktx_20-1-0" data-text="Dynamic Links Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-0-1" data-text="Performance Monitoring version 20.0.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.0.1</h3> <ul> <li><span class="release-feature"></span> Logs for <span class="notranslate">Firebase Performance Monitoring</span> now contain URLs to view performance data in the <span class="notranslate">Firebase</span> console.</li> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">RateLimiter</code> replenishment logic and unit alignment.</li> </ul> <h4 id="performance-ktx_v20-0-1" data-text="Performance Monitoring Kotlin extensions version 20.0.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-05-14" data-text="Update - May 14, 2021" tabindex="-1">Update - May 14, 2021</h2> <h3 id="google-services_plugin_v4-3-8" data-text="google-services plugin 4.3.8" tabindex="-1">google-services plugin 4.3.8</h3> <ul> <li><span class="release-fixed"></span> Added back erroneously removed class files and plugin properties file.</li> </ul> <h2 id="2021-05-13" data-text="Update - May 13, 2021" tabindex="-1">Update - May 13, 2021</h2> <h3 id="bom_v28-0-1" data-text="Firebase Android BoM (Bill of Materials) version 28.0.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.0.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v28.0.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.0.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>19.0.0</td> <td>19.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader-ktx</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>24.0.0</td> <td>24.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>20.0.0</td> <td>20.0.0</td> </tr> </tbody> </table> </section> <h3 id="auth_v21-0-1" data-text="Authentication version 21.0.1" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.1</h3> <ul> <li><span class="release-fixed"></span> Resolved a phone-auth crash based on a class/interface mismatch in the SMS Retriever API. </li> </ul> <h4 id="auth-ktx_v21-0-1" data-text="Authentication Kotlin extensions version 21.0.1" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_gradle_plugin_v2-6-1" data-text="Crashlytics Gradle plugin version 2.6.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.6.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a bug that caused the <code translate="no" dir="ltr">generateCrashlyticsSymbolFile</code> task to fail for NDK builds on Gradle 7.0+.</p></li> <li><p><span class="release-fixed"></span> Re-enabled mapping file uploads by default for obfuscated builds. The previous release erroneously required mapping file uploading to be explicitly enabled.</p></li> </ul> <h3 id="google-services_plugin_v4-3-7" data-text="google-services plugin 4.3.7" tabindex="-1">google-services plugin 4.3.7</h3> <aside class="caution">This version of the <code translate="no" dir="ltr">google-services</code> plugin should not be used. Update to v4.3.8 or later. </aside> <ul> <li><span class="release-fixed"></span> Fixed a bug for the following exception: <code translate="no" dir="ltr">AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method setVariantDir()</code>.</li> </ul> <h2 id="2021-05-11" data-text="Update - May 11, 2021" tabindex="-1">Update - May 11, 2021</h2> <aside class="warning"><strong>Breaking change:</strong> Gradle builds that use Android Gradle plugin (AGP) v4.2 or earlier need to enable Java 8 support. Otherwise, these projects get a build failure when adding a Firebase SDK (for versions in <span class="notranslate">Firebase BoM</span> v28.0.0 or later). <p>To fix this build failure, you can follow one of two options:</p> <ul> <li>Add the listed <code translate="no" dir="ltr">compileOptions</code> from the error message to your <b>app-level</b> <code translate="no" dir="ltr">build.gradle</code> file. <li>Increase the <code translate="no" dir="ltr">minSdkVersion</code> for your Android project to 26 or above. </ul> <p>Learn more about this build failure in <a href="/docs/android/troubleshooting-faq#desugaring-build-failure">this FAQ</a>. </p> </aside> <aside class="warning"><strong>Breaking change:</strong> The following libraries were removed from the <span class="notranslate">Firebase BoM</span>: <ul> <li><code translate="no" dir="ltr">firebase-ads</code> and <code translate="no" dir="ltr">firebase-ads-lite</code> <p>To continue using <span class="notranslate">Google AdMob</span>, you need to explicitly add the dependency for the <span class="notranslate">Google Mobile Ads</span> SDK including its version (<code translate="no" dir="ltr"><nobr>com.google.android.gms:play-services-ads:23.6.0</nobr></code>) to your app's <code translate="no" dir="ltr">build.gradle</code> file. </p> <p>If your app calls any <span class="notranslate">Google Analytics</span> APIs, you can continue using the <span class="notranslate">Firebase BoM</span>, but make sure that you explicitly add the dependency for the Firebase SDK for <span class="notranslate">Google Analytics</span> (<code translate="no" dir="ltr">com.google.firebase:firebase-analytics</code>) to your app's <code translate="no" dir="ltr">build.gradle</code> file. </p> </li> <li><code translate="no" dir="ltr">firebase-crash</code> <p>Consider using <a href="/docs/crashlytics"><span class="notranslate">Firebase Crashlytics</span></a> as your crash reporting solution. </p> </li> <li><code translate="no" dir="ltr">firebase-ml-model-interpreter</code> and <code translate="no" dir="ltr">firebase-ml-vision</code> <p>For an alternative to <code translate="no" dir="ltr">firebase-ml-model-interpreter</code>, see the <a href="/docs/ml/use-custom-models">Custom Models</a> docs. </p> <p>For an alternative to <code translate="no" dir="ltr">firebase-ml-vision</code>, see the <a href="/docs/ml/recognize-text">Text Recognition</a>, <a href="/docs/ml/label-images">Image Labeling</a>, and <a href="/docs/ml/recognize-landmarks">Landmark Recognition</a> docs. </p> </li> </ul> </aside> <h3 id="bom_v28-0-0" data-text="Firebase Android BoM (Bill of Materials) version 28.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 28.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v27.1.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v28.0.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>18.0.3</td> <td><b>19.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>18.0.3</td> <td><b>19.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appindexing</b></td> <td>19.2.0</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>20.0.4</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>20.0.4</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>19.5.0</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>19.5.0</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>20.0.4</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>20.0.4</td> <td><b>21.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>18.0.3</td> <td><b>19.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>17.4.1</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>17.4.1</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>17.4.1</td> <td><b>18.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>19.7.0</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>19.7.0</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links-ktx</b></td> <td>19.1.1</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-dynamic-links</b></td> <td>19.1.1</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-encoders</b></td> <td>16.1.0</td> <td><b>17.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>22.1.2</td> <td><b>23.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>22.1.2</td> <td><b>23.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>19.2.0</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>19.2.0</td> <td><b>20.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>19.1.5</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>19.1.5</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>19.1.5</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>19.1.5</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>16.3.5</td> <td><b>17.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>16.3.5</td> <td><b>17.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>21.1.0</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>21.0.1</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>21.1.0</td> <td><b>22.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>23.0.1</td> <td><b>24.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>23.0.1</td> <td><b>24.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>19.1.1</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>19.1.1</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>19.2.2</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>19.2.2</td> <td><b>20.0.0</b></td> </tr> </tbody> </table> <aside class="warning"><strong>Breaking change:</strong> The following libraries were removed from the <span class="notranslate">Firebase BoM</span>: <ul> <li><code translate="no" dir="ltr">firebase-ads</code> and <code translate="no" dir="ltr">firebase-ads-lite</code> <p>To continue using <span class="notranslate">Google AdMob</span>, you need to explicitly add the dependency for the <span class="notranslate">Google Mobile Ads</span> SDK including its version (<code translate="no" dir="ltr"><nobr>com.google.android.gms:play-services-ads:23.6.0</nobr></code>) to your app's <code translate="no" dir="ltr">build.gradle</code> file. </p> <p>If your app calls any <span class="notranslate">Google Analytics</span> APIs, you can continue using the <span class="notranslate">Firebase BoM</span>, but make sure that you explicitly add the dependency for the Firebase SDK for <span class="notranslate">Google Analytics</span> (<code translate="no" dir="ltr">com.google.firebase:firebase-analytics</code>) to your app's <code translate="no" dir="ltr">build.gradle</code> file. </p> </li> <li><code translate="no" dir="ltr">firebase-crash</code> <p>Consider using <a href="/docs/crashlytics"><span class="notranslate">Firebase Crashlytics</span></a> as your crash reporting solution. </p> </li> <li><code translate="no" dir="ltr">firebase-ml-model-interpreter</code> and <code translate="no" dir="ltr">firebase-ml-vision</code> <p>For an alternative to <code translate="no" dir="ltr">firebase-ml-model-interpreter</code>, see the <a href="/docs/ml/use-custom-models">Custom Models</a> docs. </p> <p>For an alternative to <code translate="no" dir="ltr">firebase-ml-vision</code>, see the <a href="/docs/ml/recognize-text">Text Recognition</a>, <a href="/docs/ml/label-images">Image Labeling</a>, and <a href="/docs/ml/recognize-landmarks">Landmark Recognition</a> docs. </p> </li> </ul> </aside> </section> <h3 id="ab-testing_v21-0-0" data-text="A/B Testing version 21.0.0" tabindex="-1"><span class="notranslate">A/B Testing</span> version 21.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> <li><span class="release-changed"></span> Internal changes to support dynamic feature modules.</li> </ul> <h3 id="analytics_v19-0-0" data-text="Analytics version 19.0.0" tabindex="-1"><span class="notranslate">Analytics</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="analytics-ktx_v19-0-0" data-text="Analytics Kotlin extensions version 19.0.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 19.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appdistro_gradle_plugin_v2-1-2" data-text="App Distribution Gradle plugin version 2.1.2" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 2.1.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an error (<code translate="no" dir="ltr">java.lang.NoClassDefFoundError: com/google/api/client/json/jackson2/JacksonFactory</code>) that occurred when using newer versions of the <code translate="no" dir="ltr">google-api-client</code> library.</li> <li><span class="release-fixed"></span> Fixed an error (<code translate="no" dir="ltr">java.lang.ClassNotFoundException: com.android.build.gradle.internal.scope.InternalArtifactType$BUNDLE</code>) that occurred when using Android Gradle Plugin 4.2.0.</li> </ul> <h3 id="appcheck_v16-0-0-beta01" data-text="App Check version 16.0.0-beta01" tabindex="-1"><span class="notranslate">App Check</span> version 16.0.0-beta01</h3> <ul> <li><span class="release-feature"></span> Initial beta release of the <span class="notranslate">App Check</span> SDK with abuse reduction features.</li> </ul> <h3 id="appcheck-debug_v16-0-0-beta01" data-text="App Check Debug version 16.0.0-beta01" tabindex="-1"><span class="notranslate">App Check</span> Debug version 16.0.0-beta01</h3> <ul> <li><span class="release-feature"></span> Initial beta release of the <span class="notranslate">App Check</span> Debug SDK with abuse reduction features.</li> </ul> <h3 id="appcheck-debug-testing_v16-0-0-beta01" data-text="App Check Debug Testing version 16.0.0-beta01" tabindex="-1"><span class="notranslate">App Check</span> Debug Testing version 16.0.0-beta01</h3> <ul> <li><span class="release-feature"></span> Initial beta release of the <span class="notranslate">App Check</span> Debug Testing SDK with abuse reduction features.</li> </ul> <h3 id="appcheck-safetynet_v16-0-0-beta01" data-text="App Check SafetyNet version 16.0.0-beta01" tabindex="-1"><span class="notranslate">App Check</span> SafetyNet version 16.0.0-beta01</h3> <ul> <li><span class="release-feature"></span> Initial beta release of the <span class="notranslate">App Check</span> SafetyNet SDK with abuse reduction features.</li> </ul> <h3 id="app-indexing_v20-0-0" data-text="App Indexing version 20.0.0" tabindex="-1"><span class="notranslate">App Indexing</span> version 20.0.0</h3> <ul> <li><p><span class="release-removed"></span> Removed the deprecated <code translate="no" dir="ltr">FirebaseAppIndex.create()</code> method. Use <a href="/docs/reference/android/com/google/firebase/appindexing/FirebaseAppIndex#getInstance(android.content.Context)"><code translate="no" dir="ltr">FirebaseAppIndex.getInstance(Context)</code></a> instead.</p></li> <li><p><span class="release-removed"></span> Removed the deprecated <code translate="no" dir="ltr">FirebaseUserActions.create()</code> method. Use <a href="/docs/reference/android/com/google/firebase/appindexing/FirebaseUserActions#getInstance(android.content.Context)"><code translate="no" dir="ltr">FirebaseUserActions.getInstance(Context)</code></a> instead.</p></li> </ul> <h3 id="auth_v21-0-0" data-text="Authentication version 21.0.0" tabindex="-1"><span class="notranslate">Authentication</span> version 21.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="auth-ktx_v21-0-0" data-text="Authentication Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v20-0-0" data-text="Cloud Functions for Firebase Client SDK version 20.0.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 20.0.0</h3> <ul> <li><span class="release-feature"></span> Added abuse reduction features.</li> <li><span class="release-changed"></span> Internal changes to support dynamic feature modules.</li> </ul> <h4 id="functions-client-ktx_v20-0-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v23-0-0" data-text="Cloud Firestore version 23.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 23.0.0</h3> <ul> <li><p><span class="release-changed"></span> Internal infrastructure improvements.</p></li> <li><p><span class="release-changed"></span> Internal changes to support dynamic feature modules.</p></li> </ul> <h4 id="firestore-ktx_v23-0-0" data-text="Cloud Firestore Kotlin extensions version 23.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 23.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v22-0-0" data-text="Cloud Messaging version 22.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 22.0.0</h3> <ul> <li><p><span class="release-changed"></span> Removed dependency on the deprecated Firebase Instance ID SDK.</p> <aside class="caution"><strong>Caution:</strong><span> <strong>This is a breaking change for apps that use <span class="notranslate">FCM</span> and the deprecated Firebase Instance ID API to manage registration tokens.</strong><br>We strongly recommend <a href="/docs/projects/manage-installations#fid-iid">migrating to <span class="notranslate">FCM</span>&#39;s token APIs</a>. If you&#39;re unable to migrate to the replacement APIs, add a direct dependency on the <code translate="no" dir="ltr">firebase-iid</code> library to your <code translate="no" dir="ltr">build.gradle</code> file.</span></aside></li> <li><p><span class="release-feature"></span> Changed to open an <code translate="no" dir="ltr">Activity</code> directly when a notification is tapped instead of passing it through <code translate="no" dir="ltr">FirebaseMessagingService</code>. This change is to comply with Android 12 notification trampoline restrictions.</p></li> <li><p><span class="release-feature"></span> Internal changes to use proto instead of JSON for logging.</p></li> <li><p><span class="release-changed"></span> Internal changes to support dynamic feature modules.</p></li> <li><p><span class="release-changed"></span> Internal infrastructure improvements.</p></li> </ul> <h4 id="messaging-ktx_v22-0-0" data-text="Cloud Messaging Kotlin extensions version 22.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 22.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v22-0-0" data-text="Cloud Messaging Direct Boot version 22.0.0" tabindex="-1">Cloud Messaging Direct Boot version 22.0.0</h3> <ul> <li><p><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</p></li> <li><p><span class="release-changed"></span> Internal changes to support dynamic feature modules.</p></li> <li><p><span class="release-changed"></span> Internal infrastructure improvements.</p></li> </ul> <h3 id="storage_v20.0.0" data-text="Cloud Storage for Firebase version 20.0.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 20.0.0</h3> <ul> <li><p><span class="release-feature"></span> Added abuse reduction features.</p></li> <li><p><span class="release-feature"></span> Added the ability to connect to the <span class="notranslate">Cloud Storage</span> emulator.</p></li> <li><p><span class="release-changed"></span> Internal changes to support dynamic feature modules.</p></li> <li><p><span class="release-changed"></span> Internal infrastructure improvements.</p></li> </ul> <h4 id="storage-ktx_v20.0.0" data-text="Cloud Storage for Firebase Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v18-0-0" data-text="Crashlytics version 18.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 18.0.0</h3> <ul> <li><p><span class="release-changed"></span> Removed call to <a href="/docs/reference/android/com/google/firebase/installations/FirebaseInstallations#getId()"><code translate="no" dir="ltr">FirebaseInstallations#getId()</code></a> when <a href="/docs/crashlytics/customize-crash-reports?platform=android#enable-reporting">automatic data collection</a> is disabled for <span class="notranslate">Crashlytics</span>. <span class="notranslate">Crashlytics</span> no longer makes any network calls when reporting is disabled.</p></li> <li><p><span class="release-changed"></span> Internal changes to support dynamic feature modules.</p></li> </ul> <h4 id="crashlytics-ktx_v18-0-0" data-text="Crashlytics Kotlin extensions version 18.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 18.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v18-0-0" data-text="Crashlytics NDK version 18.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 18.0.0</h3> <ul> <li><p><span class="release-changed"></span> Internal changes to support dynamic feature modules.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v18.0.0.</p></li> </ul> <h3 id="crashlytics_gradle_plugin_v2-6-0" data-text="Crashlytics Gradle plugin version 2.6.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.6.0</h3> <ul> <li><span class="release-feature"></span> Added an optional <a href="//chromium.googlesource.com/breakpad/breakpad/+/master/docs/symbol_files.md">Breakpad</a> -based symbol generator for NDK symbol file uploads. Enabling this feature will result in better NDK stack traces.</li> </ul> <h3 id="dynamic-links_v20-0-0" data-text="Dynamic Links version 20.0.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 20.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="dynamic-links-ktx_20-0-0" data-text="Dynamic Links Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-dynamic-links</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="dynamic-feature-modules-support_v16-0-0-beta01" data-text="Dynamic feature modules support version 16.0.0-beta01" tabindex="-1">Dynamic feature modules support version 16.0.0-beta01</h3> <ul> <li><span class="release-feature"></span> Support for <a href="/docs/android/learn-more#dynamic-feature-modules">dynamic feature modules</a> is now available for all Firebase libraries. By using feature modules, you can reduce download size for most users of your app.</li> </ul> <h3 id="inappmessaging_v20-0-0" data-text="In-App Messaging version 20.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 20.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="inappmessaging-ktx_v20-0-0" data-text="In-App Messaging Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v20-0-0" data-text="In-App Messaging Display version 20.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 20.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="inappmessaging-display-ktx_v20-0-0" data-text="In-App Messaging Display Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v17-0-0" data-text="Firebase installations version 17.0.0" tabindex="-1"><span class="notranslate">Firebase</span> installations version 17.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="installations-ktx_v17-0-0" data-text="Firebase installations Kotlin extensions version 17.0.0" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 17.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firebaseml-modeldownloader_v24-0-0" data-text="Firebase ML Model Downloader version 24.0.0" tabindex="-1"><span class="notranslate">Firebase ML</span> Model Downloader version 24.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h4 id="firebaseml-modeldownloadert-ktx_v24-0-0" data-text="Firebase ML Kotlin extensions version 24.0.0" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 24.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-ml-modeldownloader</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v20-0-0" data-text="Performance Monitoring version 20.0.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 20.0.0</h3> <ul> <li><span class="release-feature"></span> Introduce Dagger as a dependency injection framework for some parts of the code.</li> <li><span class="release-changed"></span> Improved the code organization of the SDK (package restructure, code conventions, remove unncessary annotations).</li> <li><span class="release-changed"></span> Improve the launch time of the SDK.</li> </ul> <h4 id="performance-ktx_v20-0-0" data-text="Performance Monitoring Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_gradle_plugin_v1-4-0" data-text="Performance Monitoring Gradle plugin version 1.4.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Gradle plugin version 1.4.0</h3> <ul> <li><span class="release-feature"></span> Improved plugin runtime through parallel transformation by migrating to the new ASM classes transform API. This feature applies to apps using Android Gradle plugin v4.2.0 or higher.</li> </ul> <h3 id="realtime-database_v20-0-0" data-text="Realtime Database version 20.0.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 20.0.0</h3> <ul> <li><p><span class="release-feature"></span> Added abuse reduction features.</p></li> <li><p><span class="release-changed"></span> Internal changes to support dynamic feature modules.</p></li> <li><p><span class="release-changed"></span> Internal infrastructure improvements.</p></li> </ul> <h4 id="realtime-database-ktx_v20-0-0" data-text="Realtime Database Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v21-0-0" data-text="Remote Config version 21.0.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 21.0.0</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> <li><span class="release-changed"></span> Internal changes to support dynamic feature modules.</li> </ul> <h4 id="remote-config-ktx_v21-0-0" data-text="Remote Config Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="google-services_plugin_v4-3-6" data-text="google-services plugin 4.3.6" tabindex="-1">google-services plugin 4.3.6</h3> <aside class="caution">This version of the <code translate="no" dir="ltr">google-services</code> plugin should not be used. Update to v4.3.8 or later. </aside> <ul> <li><span class="release-changed"></span> Refactored to use separate <code translate="no" dir="ltr">buildType</code> and <code translate="no" dir="ltr">productFlavors</code> for determining the locations of the <code translate="no" dir="ltr">google-services.json</code> files. (GitHub PR <a href="https://github.com/google/play-services-plugins/pull/131" class="external">#131</a>)</li> </ul> <h2 id="2021-04-20" data-text="Update - April 20, 2021" tabindex="-1">Update - April 20, 2021</h2> <h3 id="bom_v27-1-0" data-text="Firebase Android BoM (Bill of Materials) version 27.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 27.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v27.0.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v27.1.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-ads-lite</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ads</td> <td>20.0.0</td> <td>20.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.3</td> <td>18.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>18.0.3</td> <td>18.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>18.0.3</td> <td>18.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.4.1</td> <td>17.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.4.1</td> <td>17.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.4.1</td> <td>17.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.1.0</td> <td>21.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader-ktx</b></td> <td>N/A</td> <td><b>23.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>23.0.0</td> <td><b>23.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.2</td> <td>19.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.2</td> <td>19.2.2</td> </tr> </tbody> </table> </section> <h3 id="appdistro_gradle_plugin_v2-1-1" data-text="App Distribution Gradle plugin version 2.1.1" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 2.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">WorkValidationException</code> that occurred when attempting to upload a distribution with Gradle 7.0.</li> </ul> <h3 id="firebaseml-modeldownloader_v23-0-1" data-text="Firebase ML Model Downloader version 23.0.1" tabindex="-1"><span class="notranslate">Firebase ML</span> Model Downloader version 23.0.1</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate">Firebase ML</span> Kotlin extensions library.</li> </ul> <h4 id="firebaseml-modeldownloadert-ktx_v123-0-1" data-text="Firebase ML Kotlin extensions version 23.0.1" tabindex="-1"><span class="notranslate">Firebase ML</span> Kotlin extensions version 23.0.1</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate">Firebase ML</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-ml-model-downloader</code> library. To learn more, visit the <a href="/docs/reference/android/com/google/firebase/ml/modeldownloader/package-summary"><span class="notranslate">Firebase ML</span> KTX documentation</a>.</li> </ul> <h2 id="2021-04-08" data-text="Update - April 08, 2021" tabindex="-1">Update - April 08, 2021</h2> <h3 id="bom_v27-0-0" data-text="Firebase Android BoM (Bill of Materials) version 27.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 27.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.8.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v27.0.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-ads-lite</b></td> <td>19.8.0</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ads</b></td> <td>19.8.0</td> <td><b>20.0.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>18.0.2</td> <td><b>18.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>18.0.2</td> <td><b>18.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>20.0.3</td> <td><b>20.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>20.0.3</td> <td><b>20.0.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>18.0.2</td> <td><b>18.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.4.1</td> <td>17.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.4.1</td> <td>17.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.4.1</td> <td>17.4.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>22.1.2</td> <td>22.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-iid</b></td> <td>21.0.1</td> <td><b>21.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>21.0.1</td> <td><b>21.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>21.0.1</td> <td><b>21.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.2</td> <td>19.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.2</td> <td>19.2.2</td> </tr> </tbody> </table> </section> <h3 id="analytics_v18-0-3" data-text="Analytics version 18.0.3" tabindex="-1"><span class="notranslate">Analytics</span> version 18.0.3</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug in the Google Analytics Consent API.</li> </ul> <h4 id="analytics-ktx_v18-0-3" data-text="Analytics Kotlin extensions version 18.0.3" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 18.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="auth_v20-0-4" data-text="Authentication version 20.0.4" tabindex="-1"><span class="notranslate">Authentication</span> version 20.0.4</h3> <ul> <li><p><span class="release-fixed"></span> Added missing dependency on browser for customtabs-related flows.</p></li> <li><p><span class="release-fixed"></span> Fixed sychronization issue for cryptographic key management.</p></li> </ul> <h4 id="auth-ktx_v20-0-4" data-text="Authentication Kotlin extensions version 20.0.4" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 20.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v21-1-0" data-text="Cloud Messaging version 21.1.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 21.1.0</h3> <ul> <li><p><span class="release-feature"></span> Migrated internal handling of new token callbacks and notification actions from Firebase Instance ID to <span class="notranslate">Firebase Cloud Messaging</span>.</p></li> <li><p><span class="release-feature"></span> Added functionality to generate <span class="notranslate">FCM</span> tokens from <code translate="no" dir="ltr">FirebaseMessaging.getToken</code>, while continuing to call through to Firebase Instance ID if it is present. This will allow <span class="notranslate">Firebase Cloud Messaging</span> to remove its dependency on Firebase Instance ID in the future.</p></li> </ul> <h4 id="messaging-ktx_v21-1-0" data-text="Cloud Messaging Kotlin extensions version 21.1.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 21.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v21-1-0" data-text="Cloud Messaging Direct Boot version 21.1.0" tabindex="-1">Cloud Messaging Direct Boot version 21.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v21-1-0"><span class="notranslate">Cloud Messaging</span> v21.1.0 release notes</a>.</li> </ul> <h3 id="iid_v21-1-0" data-text="Firebase Instance ID version 21.1.0" tabindex="-1">Firebase Instance ID version 21.1.0</h3> <ul> <li><p><span class="release-removed"></span> Removed the <span class="notranslate">FCM</span> new token and notification callback functionality and migrated it to <span class="notranslate">Firebase Cloud Messaging</span>. For more information, refer to the <a href="/support/release-notes/android#messaging_v21-0-0"><span class="notranslate">Cloud Messaging</span> v21.1.0 release notes</a>.</p></li> <li><p><span class="release-fixed"></span> Fixed an inconsistency where only certain calls that generate a new <span class="notranslate">FCM</span> token for the app&#39;s default Firebase project triggered the <code translate="no" dir="ltr">FirebaseMessagingService.onNewToken</code> hook.</p></li> </ul> <h3 id="iid-interop_v17-1-0" data-text="Instance ID Interop version 17.1.0" tabindex="-1">Instance ID Interop version 17.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#iid_v21-1-0">Firebase Instance ID v21.1.0 release notes</a>.</li> </ul> <h2 id="2021-03-25" data-text="Update - March 25, 2021" tabindex="-1">Update - March 25, 2021</h2> <h3 id="bom_v26-8-0" data-text="Firebase Android BoM (Bill of Materials) version 26.8.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.8.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.7.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.8.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-ads-lite</b></td> <td>19.7.0</td> <td><b>19.8.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ads</b></td> <td>19.7.0</td> <td><b>19.8.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>17.4.0</td> <td><b>17.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>17.4.0</td> <td><b>17.4.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>17.4.0</td> <td><b>17.4.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>22.1.1</td> <td><b>22.1.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>22.1.1</td> <td><b>22.1.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>19.2.1</td> <td><b>19.2.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>19.2.1</td> <td><b>19.2.2</b></td> </tr> </tbody> </table> </section> <h3 id="firestore_v22-1-2" data-text="Cloud Firestore version 22.1.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 22.1.2</h3> <ul> <li><span class="release-changed"></span> Internal changes in preparation for future support of dynamic feature modules.</li> </ul> <h4 id="firestore-ktx_v22-1-2" data-text="Cloud Firestore Kotlin extensions version 22.1.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 22.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="storage_v19-2-2" data-text="Cloud Storage for Firebase version 19.2.2" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 19.2.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused the SDK to report incorrect values for <a href="/support/release-notes/docs/reference/android/com/google/firebase/storage/FileDownloadTask.TaskSnapshot#getTotalByteCount()"><code translate="no" dir="ltr">getTotalByteCount()</code></a> after a download was paused and resumed.</li> </ul> <h4 id="storage-ktx_v19-2-2" data-text="Cloud Storage for Firebase Kotlin extensions version 19.2.2" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 19.2.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v17-4-1" data-text="Crashlytics version 17.4.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.4.1</h3> <ul> <li><p><span class="release-changed"></span> Improved rooted device detection. (<a href="//github.com/firebase/firebase-android-sdk/pull/2515" class="external">GitHub PR #2515</a>)</p></li> <li><p><span class="release-fixed"></span> Fix an uncaught IllegalStateExeception that could be thrown if <span class="notranslate">Crashlytics</span> is unable to register a receiver that collects battery state information. If registration fails due to the app already having registered too many receivers, <span class="notranslate">Crashlytics</span> will report default values for the battery state rather than crashing. (<a href="//github.com/firebase/firebase-android-sdk/pull/2504" class="external">GitHub PR #2504</a>)</p></li> </ul> <h4 id="crashlytics-ktx_v17-4-1" data-text="Crashlytics Kotlin extensions version 17.4.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 17.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v17-4-1" data-text="Crashlytics NDK version 17.4.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.4.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.4.1.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-5-2" data-text="Crashlytics Gradle plugin version 2.5.2" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.5.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an incorrect intermediate build directory name that caused build failures on Windows when uploading native symbol files.</p></li> <li><p><span class="release-changed"></span> The plugin will no longer attempt to upload empty mapping files, as an empty file indicates no deobfuscation is necessary.</p></li> <li><p><span class="release-changed"></span> Improved some warnings and debug logging.</p></li> </ul> <h2 id="2021-03-11" data-text="Update - March 11, 2021" tabindex="-1">Update - March 11, 2021</h2> <h3 id="bom_v26-7-0" data-text="Firebase Android BoM (Bill of Materials) version 26.7.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.7.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.6.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.7.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-ads-lite</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-ads</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>20.0.4</td> <td>20.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>17.3.1</td> <td><b>17.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>17.3.1</td> <td><b>17.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>17.3.1</td> <td><b>17.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>19.6.0</td> <td><b>19.7.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>19.6.0</td> <td><b>19.7.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>22.1.1</td> <td>22.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>22.1.1</td> <td>22.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.5</td> <td>19.1.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>23.0.0</td> <td>23.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.1</td> <td>19.2.1</td> </tr> </tbody> </table> </section> <h3 id="crashlytics_v17-4-0" data-text="Crashlytics version 17.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.4.0</h3> <ul> <li><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/crashlytics/CustomKeysAndValues"><code translate="no" dir="ltr">setCustomKeys</code></a> API to allow bulk logging of custom keys and values. (<a href="//github.com/firebase/firebase-android-sdk/pull/2443" class="external">Github PR #2443</a>)</li> </ul> <h4 id="crashlytics-ktx_v17-4-0" data-text="Crashlytics Kotlin extensions version 17.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 17.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v17-4-0" data-text="Crashlytics NDK version 17.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.4.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.4.0.</li> </ul> <h3 id="realtime-database_v19-7-0" data-text="Realtime Database version 19.7.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.7.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/database/Query#startAfter(java.lang.String,%20java.lang.String)"><code translate="no" dir="ltr">Query#startAfter()</code></a> and <a href="/docs/reference/android/com/google/firebase/database/Query#endBefore(java.lang.String,%20java.lang.String)"><code translate="no" dir="ltr">Query#endBefore()</code></a> filters to help with paginated queries.</li> </ul> <h4 id="realtime-database-ktx_v19-7-0" data-text="Realtime Database Kotlin extensions version 19.7.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.7.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-03-01" data-text="Update - March 01, 2021" tabindex="-1">Update - March 01, 2021</h2> <h3 id="bom_v26-6-0" data-text="Firebase Android BoM (Bill of Materials) version 26.6.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.6.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.5.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.6.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-ads-lite</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-ads</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>20.0.2</td> <td><b>20.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>20.0.2</td> <td><b>20.0.3</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>20.0.3</td> <td><b>20.0.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>20.0.3</td> <td><b>20.0.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.3.1</td> <td>17.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.3.1</td> <td>17.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.3.1</td> <td>17.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>22.1.0</td> <td><b>22.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>22.1.0</td> <td><b>22.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>19.1.4</td> <td><b>19.1.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>19.1.4</td> <td><b>19.1.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>19.1.4</td> <td><b>19.1.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>19.1.4</td> <td><b>19.1.5</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ml-modeldownloader</b></td> <td>N/A</td> <td><b>23.0.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.1</td> <td>19.2.1</td> </tr> </tbody> </table> </section> <h3 id="auth_v20-0-3" data-text="Authentication version 20.0.3" tabindex="-1"><span class="notranslate">Authentication</span> version 20.0.3</h3> <ul> <li><span class="release-fixed"></span> Fixed bug that prevented web-based IDP flows from launching on non-GMS devices.</li> </ul> <h4 id="auth-ktx_v20-0-3" data-text="Authentication Kotlin extensions version 20.0.3" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 20.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v22-1-1" data-text="Cloud Firestore version 22.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 22.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that dropped the limit for queries loaded from <span class="notranslate">Cloud Firestore</span> bundles that were generated by the NodeJS SDK.</li> <li><span class="release-fixed"></span> Fixed a bug where local cache inconsistencies were unnecessarily being resolved, causing the <code translate="no" dir="ltr">Task</code> objects returned from <code translate="no" dir="ltr">get()</code> invocations to never complete. <a href="//github.com/firebase/firebase-android-sdk/pull/2404" class="external">GitHub PR #2404</a> </li> </ul> <h4 id="firestore-ktx_v22-1-1" data-text="Cloud Firestore Kotlin extensions version 22.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 22.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v19-1-5" data-text="In-App Messaging version 19.1.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.1.5</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">WindowManager$BadTokenException</code> when showing an in-app message.</li> </ul> <h4 id="inappmessaging-ktx_v19-1-5" data-text="In-App Messaging Kotlin extensions version 19.1.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.1.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-1-5" data-text="In-App Messaging Display version 19.1.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.1.5</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">WindowManager$BadTokenException</code> when showing an in-app message.</li> </ul> <h4 id="inappmessaging-display-ktx_v19-1-5" data-text="In-App Messaging Display Kotlin extensions version 19.1.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.1.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firebaseml-modeldownloader_v23-0-0" data-text="Firebase ML Model Downloader version 23.0.0" tabindex="-1"><span class="notranslate">Firebase ML</span> Model Downloader version 23.0.0</h3> <p>This release includes the initial beta release of the <span class="notranslate">Firebase ML</span> Model Downloader SDK.</p> <p>The <span class="notranslate">Firebase ML</span> Model Downloader SDK provides APIs for downloading models hosted with <a href="/docs/ml/use-custom-models"><span class="notranslate">Firebase ML</span> Custom Model Hosting</a>. This SDK is a lightweight version of the ML Kit Custom Models library (<code translate="no" dir="ltr">firebase-ml-model-interpreter</code>), allowing you to work with custom hosted models without the interpreter API, which is now provided directly by TFLite runtime.</p> <ul> <li><p><span class="release-feature"></span> Added custom hosted model download and on-device management capabilities.</p></li> <li><p><span class="release-feature"></span> Added ability to get the model download ID, which allows progress tracking of file downloads.</p></li> </ul> <h3 id="appdistro_gradle_plugin_v2-1-0" data-text="App Distribution Gradle plugin version 2.1.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 2.1.0</h3> <ul> <li><p><span class="release-changed"></span> Updated Gradle build version to 5.6.4.</p></li> <li><p><span class="release-changed"></span> Added an override for properties set in the <code translate="no" dir="ltr">build.gradle</code> file by passing command line arguments in the form of <code translate="no" dir="ltr">--appDistribution-<var translate="no">PROPERTY_NAME</var>=<var translate="no">PROPERTY_VALUE</var></code></p></li> </ul> <h3 id="crashlytics_gradle_plugin_v2-5-1" data-text="Crashlytics Gradle plugin version 2.5.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.5.1</h3> <ul> <li><p><span class="release-feature"></span> Added the Gradle <a href="//docs.gradle.org/current/userguide/configuration_cache.html" class="external">configuration cache</a> for NDK builds (requires the Android Gradle plugin v7.0.0-alpha06+). The <span class="notranslate">Crashlytics</span> Gradle plugin v2.5.0 supports the configuration cache for non-NDK builds.</p></li> <li><p><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">No signature of method</code> error that could occur when building with Gradle 6.1 - 6.4.1 and <span class="notranslate">Crashlytics</span> Gradle plugin v2.5.0.</p></li> <li><p><span class="release-fixed"></span> Removed unnecessary validation for obsolete <code translate="no" dir="ltr">strippedNativeLibsDir</code> property.</p></li> </ul> <h3 id="performance_gradle_plugin_v1-3-5" data-text="Performance Monitoring Gradle plugin version 1.3.5" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Gradle plugin version 1.3.5</h3> <ul> <li><span class="release-feature"></span> Added support for <a href="//docs.gradle.org/current/userguide/configuration_cache.html" class="external">Configuration Cache</a>.</li> </ul> <h2 id="2021-02-11" data-text="Update - February 11, 2021" tabindex="-1">Update - February 11, 2021</h2> <h3 id="bom_v26-5-0" data-text="Firebase Android BoM (Bill of Materials) version 26.5.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.5.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.4.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.5.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-ads-lite</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-ads</td> <td>19.7.0</td> <td>19.7.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-appindexing</b></td> <td>19.1.0</td> <td><b>19.2.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>20.0.3</td> <td>20.0.3</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>18.0.2</td> <td>18.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.3.1</td> <td>17.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.3.1</td> <td>17.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.3.1</td> <td>17.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>22.0.2</td> <td><b>22.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>22.0.2</td> <td><b>22.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.4</td> <td>19.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.4</td> <td>19.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.4</td> <td>19.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.4</td> <td>19.1.4</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>19.1.0</td> <td><b>19.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>19.1.0</td> <td><b>19.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.1</td> <td>19.2.1</td> </tr> </tbody> </table> </section> <h3 id="app-indexing_v19-2-0" data-text="App Indexing version 19.2.0" tabindex="-1"><span class="notranslate">App Indexing</span> version 19.2.0</h3> <ul> <li><p><span class="release-deprecated"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/appindexing/FirebaseAppIndex#getInstance()"><code translate="no" dir="ltr">FirebaseAppIndex.getInstance()</code></a>. Use <a href="/docs/reference/android/com/google/firebase/appindexing/FirebaseAppIndex#getInstance(android.content.Context)"><code translate="no" dir="ltr">FirebaseAppIndex.getInstance(Context)</code></a> instead.</p></li> <li><p><span class="release-deprecated"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/appindexing/FirebaseUserActions#getInstance()"><code translate="no" dir="ltr">FirebaseUserActions.getInstance()</code></a>. Use <a href="/docs/reference/android/com/google/firebase/appindexing/FirebaseUserActions#getInstance(android.content.Context)"><code translate="no" dir="ltr">FirebaseUserActions.getInstance(Context)</code></a> instead.</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appindexing/builders/IndexableBuilder#setAlternateName(java.lang.String...)"><code translate="no" dir="ltr">IndexableBuilder.setAlternateName(String...)</code></a>. Use this to set alternate or additional names for indexed content.</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appindexing/builders/IndexableBuilder#setId(java.lang.String)"><code translate="no" dir="ltr">IndexableBuilder.setId(String)</code></a>. Use this to set an identifier for the Indexable.</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appindexing/builders/IndexableBuilder#setIsPartOf(S...)"><code translate="no" dir="ltr">IndexableBuilder.setIsPartOf(IndexableBuilder&lt;?&gt;...)</code></a>. Use this to set the sub-group or collection that the Indexable is part of.</p></li> </ul> <h3 id="firestore_v22-1-0" data-text="Cloud Firestore version 22.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 22.1.0</h3> <ul> <li><span class="release-feature"></span> Added support for <span class="notranslate">Cloud Firestore</span> bundles via <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#loadBundle(java.nio.ByteBuffer)"><code translate="no" dir="ltr">FirebaseFirestore.loadBundle()</code></a> and <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#getNamedQuery(java.lang.String)"><code translate="no" dir="ltr">FirebaseFirestore.getNamedQuery()</code></a>. Bundles contain pre-packaged data produced with the Firebase Admin Node.js SDK and can be used to populate the cache for <span class="notranslate">Cloud Firestore</span> without the need to read documents from the backend.</li> </ul> <h4 id="firestore-ktx_v22-1-0" data-text="Cloud Firestore Kotlin extensions version 22.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 22.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_gradle_plugin_v2-5-0" data-text="Crashlytics Gradle plugin version 2.5.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.5.0</h3> <ul> <li><p><span class="release-feature"></span> Added Gradle <a href="//docs.gradle.org/current/userguide/configuration_cache.html" class="external">configuration cache</a> support for non-NDK builds. A future release will include configuration cache support for NDK customers.</p></li> <li><p><span class="release-removed"></span> The <span class="notranslate">Crashlytics</span> Gradle plugin is compatible with Gradle v5.6.4+ and the Android Gradle plugin v3.4.2+. Support for previous Gradle and Android Gradle plugin versions has been removed.</p></li> </ul> <h3 id="performance_v19-1-1" data-text="Performance Monitoring version 19.1.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.1.1</h3> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Firebase Performance Monitoring</span> SDK is now <a href="//github.com/firebase/firebase-android-sdk/tree/master/firebase-perf" class="external">open sourced</a>.</li> <li><span class="release-fixed"></span> Fixed issue on the console logger to avoid throwing <code translate="no" dir="ltr">UnknownFormatConversionException</code>.</li> </ul> <h4 id="performance-ktx_v19-1-1" data-text="Performance Monitoring Kotlin extensions version 19.1.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 19.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2021-01-28" data-text="Update - January 28, 2021" tabindex="-1">Update - January 28, 2021</h2> <h3 id="bom_v26-4-0" data-text="Firebase Android BoM (Bill of Materials) version 26.4.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.4.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.3.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.4.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-ads-lite</b></td> <td>19.6.0</td> <td><b>19.7.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ads</b></td> <td>19.6.0</td> <td><b>19.7.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>18.0.1</td> <td><b>18.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>18.0.1</td> <td><b>18.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>20.0.2</td> <td><b>20.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>20.0.2</td> <td><b>20.0.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>18.0.1</td> <td><b>18.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>17.3.0</td> <td><b>17.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>17.3.0</td> <td><b>17.3.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>17.3.0</td> <td><b>17.3.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>22.0.1</td> <td><b>22.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>22.0.1</td> <td><b>22.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>19.1.3</td> <td><b>19.1.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>19.1.3</td> <td><b>19.1.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>19.1.3</td> <td><b>19.1.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>19.1.3</td> <td><b>19.1.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.1</td> <td>19.2.1</td> </tr> </tbody> </table> </section> <h3 id="analytics_v18-0-2" data-text="Analytics version 18.0.2" tabindex="-1"><span class="notranslate">Analytics</span> version 18.0.2</h3> <ul> <li><span class="release-unchanged"></span> No changes to the base <code translate="no" dir="ltr">firebase-analytics</code> library.</li> </ul> <h4 id="analytics-ktx_v18-0-2" data-text="Analytics Kotlin extensions version 18.0.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 18.0.2</h4> <ul> <li><span class="release-fixed"></span> Fixed a bug where some code was getting unintentionally obfuscated by ProGuard. The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library.</li> </ul> <h3 id="firestore_v22-0-2" data-text="Cloud Firestore version 22.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 22.0.2</h3> <ul> <li><span class="release-changed"></span> A write to a document that contains <code translate="no" dir="ltr">FieldValue</code> transforms is no longer split into two separate operations. This reduces the number of writes that the backend performs and allows each <code translate="no" dir="ltr">WriteBatch</code> to hold 500 writes regardless of how many <code translate="no" dir="ltr">FieldValue</code> transformations are attached.</li> </ul> <h4 id="firestore-ktx_v22-0-2" data-text="Cloud Firestore Kotlin extensions version 22.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 22.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v17-3-1" data-text="Crashlytics version 17.3.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.3.1</h3> <ul> <li><span class="release-changed"></span> Removed OkHttp dependency to eliminate conflicts with apps and SDKs using incompatible versions.</li> </ul> <h4 id="crashlytics-ktx_v17-3-1" data-text="Crashlytics Kotlin extensions version 17.3.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 17.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v17-3-1" data-text="Crashlytics NDK version 17.3.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.3.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.3.1.</li> </ul> <h3 id="inappmessaging_v19-1-4" data-text="In-App Messaging version 19.1.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.1.4</h3> <ul> <li><span class="release-fixed"></span> Fixed in-app message button click not working in Android 11 because of package visibility changes.</li> </ul> <h4 id="inappmessaging-ktx_v19-1-4" data-text="In-App Messaging Kotlin extensions version 19.1.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.1.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-1-4" data-text="In-App Messaging Display version 19.1.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.1.4</h3> <ul> <li><span class="release-fixed"></span> Fixed in-app message button click not working in Android 11 because of package visibility changes.</li> </ul> <h4 id="inappmessaging-display-ktx_v19-1-4" data-text="In-App Messaging Display Kotlin extensions version 19.1.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.1.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v20-0-3" data-text="Remote Config version 20.0.3" tabindex="-1"><span class="notranslate">Remote Config</span> version 20.0.3</h3> <ul> <li><span class="release-changed"></span> Standardize support for other Firebase products that integrate with <span class="notranslate">Remote Config</span>.</li> </ul> <h4 id="remote-config-ktx_v20-0-3" data-text="Remote Config Kotlin extensions version 20.0.3" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 20.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="google-services_plugin_v4-3-5" data-text="google-services plugin 4.3.5" tabindex="-1">google-services plugin 4.3.5</h3> <ul> <li><p><span class="release-fixed"></span> Improved configuration cache support.</p></li> <li><p><span class="release-fixed"></span> Changed the resolution order for <code translate="no" dir="ltr">google-services.json</code> file to be strictly inside-out. Specifically, deeper directories will <em>always</em> be checked first for the configuration file before more shallow directories. This is a change from the previous behavior, where some shallow directories were checked before deeper ones, making the order inconsistent and difficult to predict.</p></li> </ul> <h2 id="2021-01-14" data-text="Update - January 14, 2021" tabindex="-1">Update - January 14, 2021</h2> <h3 id="bom_v26-3-0" data-text="Firebase Android BoM (Bill of Materials) version 26.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.2.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.3.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-ads-lite</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-ads</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td>18.0.0</td> <td><b>18.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td>18.0.0</td> <td><b>18.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td>18.0.0</td> <td><b>18.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.6.0</td> <td>19.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.1.0</td> <td>16.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>22.0.1</td> <td>22.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>22.0.1</td> <td>22.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.3</td> <td>19.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.3</td> <td>19.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.3</td> <td>19.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.3</td> <td>19.1.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.5</td> <td>16.3.5</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.0.1</td> <td>21.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>19.0.11</td> <td><b>19.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>19.0.11</td> <td><b>19.1.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.1</td> <td>19.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.1</td> <td>19.2.1</td> </tr> </tbody> </table> </section> <h3 id="analytics_v18-0-1" data-text="Analytics version 18.0.1" tabindex="-1"><span class="notranslate">Analytics</span> version 18.0.1</h3> <ul> <li><p><span class="release-changed"></span> Temporarily removed the following <span class="notranslate">Firebase Dynamic Links</span> namespaces from the reserved event namespace list:</p> <ul> <li><code translate="no" dir="ltr">dynamic_link_app_open</code></li> <li><code translate="no" dir="ltr">dynamic_link_app_update</code></li> <li><code translate="no" dir="ltr">dynamic_link_first_open</code></li> </ul> <p>The SDK will still automatically collect data for these events, and the <span class="notranslate">Analytics</span> dashboards will still display this data.</p> <aside class="special"><strong>Important:</strong><span> The reservation of these namespaces will be added back in a future release, so you should not manually log events using these namespaces.</span></aside></li> </ul> <h4 id="analytics-ktx_v18-0-1" data-text="Analytics Kotlin extensions version 18.0.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 18.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="auth_v20-0-2" data-text="Authentication version 20.0.2" tabindex="-1"><span class="notranslate">Authentication</span> version 20.0.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed network requests not having a timeout. They now time out after 60 seconds.</p></li> <li><p><span class="release-fixed"></span> Fixed <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuth#verifyPasswordResetCode(java.lang.String)">#verifyPasswordResetCode()</a> to no longer crash when called.</p></li> <li><p><span class="release-fixed"></span> Added more prescriptive error messages to the flow where reCAPTCHA verification fails in phone authentication flows.</p></li> </ul> <h4 id="auth-ktx_v20-0-2" data-text="Authentication Kotlin extensions version 20.0.2" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 20.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v19-1-0" data-text="Performance Monitoring version 19.1.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.1.0</h3> <ul> <li><p><span class="release-changed"></span> Removed GMS dependency from <span class="notranslate">Performance Monitoring</span>. Google Play services installation is no longer required to use <span class="notranslate">Performance Monitoring</span>.</p></li> <li><p><span class="release-changed"></span> Improved performance event dispatch wait time from 2 hours to 30 seconds.</p></li> </ul> <h4 id="performance-ktx_v19-1-0" data-text="Performance Monitoring Kotlin extensions version 19.1.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 19.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2020-12-16" data-text="Update - December 16, 2020" tabindex="-1">Update - December 16, 2020</h2> <h3 id="bom_v26-2-0" data-text="Firebase Android BoM (Bill of Materials) version 26.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.1.1</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.2.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-ads-lite</b></td> <td>19.5.0</td> <td><b>19.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ads</b></td> <td>19.5.0</td> <td><b>19.6.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>19.4.0</td> <td><b>19.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>19.4.0</td> <td><b>19.5.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>20.0.2</td> <td>20.0.2</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td>19.5.1</td> <td><b>19.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td>19.5.1</td> <td><b>19.6.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-encoders</b></td> <td>16.0.0</td> <td><b>16.1.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td>22.0.0</td> <td><b>22.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td>22.0.0</td> <td><b>22.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions-ktx</b></td> <td>19.1.0</td> <td><b>19.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-functions</b></td> <td>19.1.0</td> <td><b>19.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-iid</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td>19.1.2</td> <td><b>19.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td>19.1.2</td> <td><b>19.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td>19.1.2</td> <td><b>19.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td>19.1.2</td> <td><b>19.1.3</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>16.3.4</td> <td><b>16.3.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>16.3.4</td> <td><b>16.3.5</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td>21.0.0</td> <td><b>21.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>19.0.10</td> <td><b>19.0.11</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>19.0.10</td> <td><b>19.0.11</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage-ktx</b></td> <td>19.2.0</td> <td><b>19.2.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-storage</b></td> <td>19.2.0</td> <td><b>19.2.1</b></td> </tr> </tbody> </table> </section> <h3 id="firestore_v22-0-1" data-text="Cloud Firestore version 22.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 22.0.1</h3> <ul> <li><span class="release-changed"></span> Removed excess validation of null and NaN values in query filters. This more closely aligns the SDK with the <span class="notranslate">Cloud Firestore</span> backend, which has always accepted null and NaN for all operators.</li> </ul> <h4 id="firestore-ktx_v22-0-1" data-text="Cloud Firestore Kotlin extensions version 22.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 22.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v21-0-1" data-text="Cloud Messaging version 21.0.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 21.0.1</h3> <ul> <li><p><span class="release-changed"></span> Updated to latest version of the <code translate="no" dir="ltr">firebase-datatransport</code> library.</p></li> <li><p><span class="release-feature"></span> The SDK now gracefully handles missing default resources.</p></li> </ul> <h4 id="messaging-ktx_v21-0-1" data-text="Cloud Messaging Kotlin extensions version 21.0.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 21.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v21-0-1" data-text="Cloud Messaging Direct Boot version 21.0.1" tabindex="-1">Cloud Messaging Direct Boot version 21.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v21-0-1"><span class="notranslate">Cloud Messaging</span> v21.0.1 release note</a>.</li> </ul> <h3 id="functions-client_v19-2-0" data-text="Cloud Functions for Firebase Client SDK version 19.2.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 19.2.0</h3> <ul> <li><span class="release-feature"></span> Added support for custom domains, <a href="/docs/reference/android/com/google/firebase/functions/FirebaseFunctions#getInstance(java.lang.String)"><code translate="no" dir="ltr">FirebaseFunctions#getInstance()</code></a>.</li> </ul> <h4 id="functions-client-ktx_v19-2-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 19.2.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 19.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="storage_v19-2-1" data-text="Cloud Storage for Firebase version 19.2.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 19.2.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused the SDK to crash if the download location was deleted before the download completed. Instead, the download now fails.</li> </ul> <h4 id="storage-ktx_v19-2-1" data-text="Cloud Storage for Firebase Kotlin extensions version 19.2.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 19.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v19-1-3" data-text="In-App Messaging version 19.1.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.1.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to maintain compatibility with other Firebase SDKs.</li> </ul> <h4 id="inappmessaging-ktx_v19-1-3" data-text="In-App Messaging Kotlin extensions version 19.1.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.1.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-1-3" data-text="In-App Messaging Display version 19.1.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.1.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to maintain compatibility with other Firebase SDKs.</li> </ul> <h4 id="inappmessaging-display-ktx_v19-1-3" data-text="In-App Messaging Display Kotlin extensions version 19.1.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.1.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v16-3-5" data-text="Firebase installations version 16.3.5" tabindex="-1"><span class="notranslate">Firebase</span> installations version 16.3.5</h3> <ul> <li><span class="release-fixed"></span> Fixed an <code translate="no" dir="ltr">IidCompatibilityCheckFailure</code> lint check failure with a null pointer exception (NPE) that occurred on Gradle v6.1 and above. (<a href="//github.com/firebase/firebase-android-sdk/issues/1701" class="external">GitHub Issue #1701</a>)</li> </ul> <h4 id="installations-ktx_v16-3-5" data-text="Firebase installations Kotlin extensions version 16.3.5" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 16.3.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="iid_v21-0-1" data-text="Firebase Instance ID version 21.0.1" tabindex="-1">Firebase Instance ID version 21.0.1</h3> <ul> <li><p><span class="release-changed"></span> Updated to latest version of the <code translate="no" dir="ltr">firebase-datatransport</code> library.</p></li> <li><p><span class="release-deprecated"></span> Added deprecation warnings to <code translate="no" dir="ltr">InstanceIdResult</code> and removed outdated docs for <code translate="no" dir="ltr">FirebaseInstanceIdReceiver</code>. The <code translate="no" dir="ltr">firebase.iid</code> package was deprecated in <a href="/support/release-notes/android#iid_v21-0-0">v21.0.0</a>.</p></li> </ul> <h3 id="performance_v19-0-11" data-text="Performance Monitoring version 19.0.11" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.11</h3> <ul> <li><span class="release-fixed"></span> Upgraded protobuf dependency to the latest released version (<a href="//github.com/firebase/firebase-android-sdk/issues/2158" class="external">GitHub Issue #2158</a>)</li> </ul> <h4 id="performance-ktx_v19-0-11" data-text="Performance Monitoring Kotlin extensions version 19.0.11" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 19.0.11</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v19-6-0" data-text="Realtime Database version 19.6.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.6.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/database/DatabaseReference#get()"><code translate="no" dir="ltr">DatabaseReference#get()</code></a> and <a href="/docs/reference/android/com/google/firebase/database/Query#get()"><code translate="no" dir="ltr">Query#get()</code></a>, which return data from the server even when older data is available in the local cache.</li> <li><span class="release-fixed"></span> Fixed a crash that occurred on some Pixel devices when closing the network connection.</li> </ul> <h4 id="realtime-database-ktx_v19-6-0" data-text="Realtime Database Kotlin extensions version 19.6.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.6.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2020-12-03" data-text="Update - December 03, 2020" tabindex="-1">Update - December 03, 2020</h2> <h3 id="bom_v26-1-1" data-text="Firebase Android BoM (Bill of Materials) version 26.1.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.1.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.1.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.1.1</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-ads-lite</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-ads</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>20.0.1</td> <td>20.0.1</td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.4.0</td> <td>19.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.4.0</td> <td>19.4.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>20.0.1</td> <td><b>20.0.2</b></td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.3.0</td> <td>17.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.5.1</td> <td>19.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.5.1</td> <td>19.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.2</td> <td>19.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.2</td> <td>19.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.2</td> <td>19.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.2</td> <td>19.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.4</td> <td>16.3.4</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.4</td> <td>16.3.4</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.0.10</td> <td>19.0.10</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.0.10</td> <td>19.0.10</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.0</td> <td>19.2.0</td> </tr> </tbody> </table> </section> <h3 id="remote-config_v20-0-2" data-text="Remote Config version 20.0.2" tabindex="-1"><span class="notranslate">Remote Config</span> version 20.0.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that was causing <span class="notranslate">Remote Config</span> to return the static default value even if a remote value was defined. (<a href="//github.com/firebase/firebase-android-sdk/issues/2186" class="external">GitHub Issue #2186</a>)</li> </ul> <h4 id="remote-config-ktx_v20-0-2" data-text="Remote Config Kotlin extensions version 20.0.2" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 20.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2020-11-12" data-text="Update - November 12, 2020" tabindex="-1">Update - November 12, 2020</h2> <h3 id="bom_v26-1-0" data-text="Firebase Android BoM (Bill of Materials) version 26.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v26.0.0</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.1.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-ads-lite</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-ads</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td>19.3.1</td> <td><b>19.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td>19.3.1</td> <td><b>19.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td>20.0.0</td> <td><b>20.0.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>18.0.0</td> <td>18.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ktx</b></td> <td>17.2.2</td> <td><b>17.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics-ndk</b></td> <td>17.2.2</td> <td><b>17.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-crashlytics</b></td> <td>17.2.2</td> <td><b>17.3.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.5.1</td> <td>19.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.5.1</td> <td>19.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>22.0.0</td> <td>22.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-iid</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.2</td> <td>19.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.2</td> <td>19.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.2</td> <td>19.1.2</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.2</td> <td>19.1.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations-ktx</b></td> <td>16.3.3</td> <td><b>16.3.4</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td>16.3.3</td> <td><b>16.3.4</b></td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>21.0.0</td> <td>21.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf-ktx</b></td> <td>19.0.9</td> <td><b>19.0.10</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-perf</b></td> <td>19.0.9</td> <td><b>19.0.10</b></td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.0</td> <td>19.2.0</td> </tr> </tbody> </table> </section> <h3 id="auth_v20-0-1" data-text="Authentication version 20.0.1" tabindex="-1"><span class="notranslate">Authentication</span> version 20.0.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue where the SDK version number was not properly propagating.</p></li> <li><p><span class="release-fixed"></span> Added more instructive error messages to the <a href="/docs/reference/android/com/google/firebase/auth/PhoneAuthOptions.Builder#build()">PhoneAuthOptions.Builder#build()</a> to facilitate easier identification of issues.</p></li> <li><p><span class="release-fixed"></span> Fixed a bug that required the inclusion of a browser dependency in the client application. Instead, when Chrome Custom Tabs are not available for web-based flows (such as Generic IDP or reCAPTCHA in Phone Auth), it will fall back to whatever application is the default for the <a href="//developer.android.com/reference/android/content/Intent#ACTION_VIEW">Intent#ACTION_VIEW</a> intent.</p></li> <li><p><span class="release-changed"></span> Removed unnecessary classes and methods to reduce the SDK&#39;s size.</p></li> </ul> <h4 id="auth-ktx_v20-0-1" data-text="Authentication Kotlin extensions version 20.0.1" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 20.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_v17-3-0" data-text="Crashlytics version 17.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.3.0</h3> <ul> <li><p><span class="release-changed"></span> Clarified debug logs for crash reports enqueued to be sent via the <code translate="no" dir="ltr">firebase-datatransport</code> library.</p></li> <li><p><span class="release-fixed"></span> Addressed an issue which could cause a <code translate="no" dir="ltr">RejectedExecutionException</code> in rare cases. (<a href="//github.com/firebase/firebase-android-sdk/issues/2013" class="external">Github Issue #2013</a>)</p></li> </ul> <h4 id="crashlytics-ktx_v17-3-0" data-text="Crashlytics Kotlin extensions version 17.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 17.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v17-3-0" data-text="Crashlytics NDK version 17.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.3.0</h3> <aside class="note"><strong>Note:</strong><span> To ensure proper symbolication of NDK crashes, you must use <a href="#crashlytics_gradle_plugin_v2-4-0"><span class="notranslate">Crashlytics</span> Gradle plugin v2.4.0+</a> when using this version of the <span class="notranslate">Crashlytics</span> NDK SDK and above.</span></aside> <ul> <li><span class="release-fixed"></span> Upgraded underlying native crash reporting library to <a href="//crashpad.chromium.org" class="external">Crashpad</a>. This addresses emerging issues with capturing certain types of native crashes on Android 10+ using <a href="//chromium.googlesource.com/breakpad" class="external">Breakpad</a>. (<a href="//github.com/firebase/firebase-android-sdk/issues/1678" class="external">Github Issue #1678</a>)</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-4-1" data-text="Crashlytics Gradle plugin version 2.4.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.4.1</h3> <aside class="note"><strong>Note:</strong><span> To ensure proper symbolication of NDK crashes, you must use <a href="#crashlytics-ndk_v17-3-0"><span class="notranslate">Crashlytics</span> NDK SDK v17.3.0+</a> when using this version of the <span class="notranslate">Crashlytics</span> Gradle plugin and above.</span></aside> <ul> <li><span class="release-fixed"></span> Restored compatibility with JDK 8, which was erroneously removed in the prior release.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-4-0" data-text="Crashlytics Gradle plugin version 2.4.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.4.0</h3> <aside class="note"><strong>Note:</strong><span> To ensure proper symbolication of NDK crashes, you must use <a href="#crashlytics-ndk_v17-3-0"><span class="notranslate">Crashlytics</span> NDK SDK v17.3.0+</a> when using this version of the <span class="notranslate">Crashlytics</span> Gradle plugin and above.</span></aside> <ul> <li><p><span class="release-changed"></span> Modified native binary fingerprinting to require only the unstripped library as input. As a result, the plugin no longer analyzes the stripped library at build time.</p></li> <li><p><span class="release-deprecated"></span> <code translate="no" dir="ltr">strippedNativeLibsDir</code> defined in the <code translate="no" dir="ltr">firebaseCrashlytics</code> extension is no longer necessary and will be removed in a future release.</p></li> </ul> <h3 id="installations_v16-3-4" data-text="Firebase installations version 16.3.4" tabindex="-1"><span class="notranslate">Firebase</span> installations version 16.3.4</h3> <ul> <li><span class="release-fixed"></span> Fixed an <code translate="no" dir="ltr">OverlappingFileLockException</code> that occurred on some Android 7 &amp; 8 devices when Firebase services tried to register a <span class="notranslate">Firebase</span> installation ID (FID). (<a href="//github.com/firebase/firebase-android-sdk/issues/1519" class="external">GitHub Issue #1519</a>)</li> </ul> <h4 id="installations-ktx_v16-3-4" data-text="Firebase installations Kotlin extensions version 16.3.4" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 16.3.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-installations</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v19-0-10" data-text="Performance Monitoring version 19.0.10" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.10</h3> <aside class="note"><strong>Note:</strong><span> We recommend using <span class="notranslate">Performance Monitoring</span> Gradle plugin v1.3.4+ with this version of the <span class="notranslate">Performance Monitoring</span> SDK and above.</span></aside> <ul> <li><p><span class="release-changed"></span> Integrated with the <code translate="no" dir="ltr">firebase-datatransport</code> library for performance log dispatch mechanism.</p></li> <li><p><span class="release-fixed"></span> Synchronized the access to fix a race condition that was causing a <code translate="no" dir="ltr">NullPointerException</code> when making network requests. (<a href="//github.com/firebase/firebase-android-sdk/issues/2096" class="external">GitHub Issue #2096</a>)</p></li> </ul> <h4 id="performance-ktx_v19-0-10" data-text="Performance Monitoring Kotlin extensions version 19.0.10" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 19.0.10</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-performance</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_gradle_plugin_v1-3-4" data-text="Performance Monitoring Gradle plugin version 1.3.4" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Gradle plugin version 1.3.4</h3> <ul> <li><span class="release-changed"></span> Disabled the tracking of network requests used for uploading performance events via the <code translate="no" dir="ltr">firebase-transport</code> library. Refer to the <a href="#performance_v19-0-10"><span class="notranslate">Performance Monitoring</span> SDK v19.0.10 release notes</a> to avoid cyclic generation of those network performance events.</li> </ul> <h3 id="remote-config_v20-0-1" data-text="Remote Config version 20.0.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 20.0.1</h3> <ul> <li><span class="release-changed"></span> Added support for other Firebase products to integrate with <span class="notranslate">Remote Config</span>.</li> </ul> <h4 id="remote-config-ktx_v20-0-1" data-text="Remote Config Kotlin extensions version 20.0.1" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 20.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2020-10-27" data-text="Update - October 27, 2020" tabindex="-1">Update - October 27, 2020</h2> <h3 id="bom_v26-0-0" data-text="Firebase Android BoM (Bill of Materials) version 26.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 26.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v26.0.0</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v25.13.0</th> </thead> <tbody> <tr> <td>com.google.firebase:firebase-ads-lite</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr> <td>com.google.firebase:firebase-ads</td> <td>19.5.0</td> <td>19.5.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics-ktx</b></td> <td><b>18.0.0</b></td> <td><b>17.6.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-analytics</b></td> <td><b>18.0.0</b></td> <td><b>17.6.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth-ktx</b></td> <td><b>20.0.0</b></td> <td><b>19.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-auth</b></td> <td><b>20.0.0</b></td> <td><b>19.4.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-common-ktx</td> <td>19.3.1</td> <td>19.3.1</td> </tr> <tr> <td>com.google.firebase:firebase-common</td> <td>19.3.1</td> <td>19.3.1</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config-ktx</b></td> <td><b>20.0.0</b></td> <td><b>19.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-config</b></td> <td><b>20.0.0</b></td> <td><b>19.2.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-core</b></td> <td><b>18.0.0</b></td> <td><b>17.5.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-buildtools</td> <td>2.3.0</td> <td>2.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-gradle</td> <td>2.3.0</td> <td>2.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.2.2</td> <td>17.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.2.2</td> <td>17.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.2.2</td> <td>17.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-database-ktx</td> <td>19.5.1</td> <td>19.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-database</td> <td>19.5.1</td> <td>19.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore-ktx</b></td> <td><b>22.0.0</b></td> <td><b>21.7.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-firestore</b></td> <td><b>22.0.0</b></td> <td><b>21.7.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-iid</b></td> <td><b>21.0.0</b></td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display-ktx</b></td> <td><b>19.1.2</b></td> <td><b>19.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-display</b></td> <td><b>19.1.2</b></td> <td><b>19.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging-ktx</b></td> <td><b>19.1.2</b></td> <td><b>19.1.1</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-inappmessaging</b></td> <td><b>19.1.2</b></td> <td><b>19.1.1</b></td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.3</td> <td>16.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-installations</td> <td>16.3.3</td> <td>16.3.3</td> </tr> <tr> <td>com.google.firebase:firebase-invites</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-directboot</b></td> <td><b>21.0.0</b></td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging-ktx</b></td> <td><b>21.0.0</b></td> <td><b>20.3.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-messaging</b></td> <td><b>21.0.0</b></td> <td><b>20.3.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.0.9</td> <td>19.0.9</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.0.9</td> <td>19.0.9</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.0</td> <td>19.2.0</td> </tr> </tbody> </table> </section> <h3 id="ab-testing_v20-0-0" data-text="A/B Testing version 20.0.0" tabindex="-1"><span class="notranslate">A/B Testing</span> version 20.0.0</h3> <ul> <li><span class="release-removed"></span> Removed the protocol buffer dependency and moved relevant protocol buffer definitions to <span class="notranslate">Firebase In-App Messaging</span>. If you use <span class="notranslate">A/B Testing</span> with <span class="notranslate">In-App Messaging</span>, you&#39;ll need to update to <span class="notranslate">In-App Messaging</span> v19.1.2 or later.</li> </ul> <h3 id="analytics_v18-0-0" data-text="Analytics version 18.0.0" tabindex="-1"><span class="notranslate">Analytics</span> version 18.0.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for consent mode. <a href="//support.google.com/analytics/answer/9976101" class="external">Learn more.</a> </p></li> <li><p><span class="release-removed"></span> Removed the deprecated Install Referrer Broadcast Receiver.</p></li> <li><p><span class="release-changed"></span> Added the following event names as reserved:</p> <ul> <li><code translate="no" dir="ltr">ad_reward</code></li> <li><code translate="no" dir="ltr">app_background</code></li> <li><code translate="no" dir="ltr">app_exception</code></li> <li><code translate="no" dir="ltr">app_remove</code></li> <li><code translate="no" dir="ltr">app_store_refund</code></li> <li><code translate="no" dir="ltr">app_store_subscription_cancel</code></li> <li><code translate="no" dir="ltr">app_store_subscription_convert</code></li> <li><code translate="no" dir="ltr">app_store_subscription_renew</code></li> <li><code translate="no" dir="ltr">app_upgrade</code></li> <li><code translate="no" dir="ltr">dynamic_link_app_open</code></li> <li><code translate="no" dir="ltr">dynamic_link_app_update</code></li> <li><code translate="no" dir="ltr">dynamic_link_first_open</code></li> <li><code translate="no" dir="ltr">session_start_with_rollout</code></li> </ul></li> <li><p><span class="release-changed"></span> No longer reserving the following event names:</p> <ul> <li><code translate="no" dir="ltr">app_uninstall</code></li> <li><code translate="no" dir="ltr">screen_view</code></li> </ul></li> </ul> <h4 id="analytics-ktx_v18-0-0" data-text="Analytics Kotlin extensions version 18.0.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 18.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="auth_v20-0-0" data-text="Authentication version 20.0.0" tabindex="-1"><span class="notranslate">Authentication</span> version 20.0.0</h3> <ul> <li><p><span class="release-feature"></span> The <span class="notranslate">Firebase Authentication</span> Android library now works on devices without Google Play services.</p></li> <li><p><span class="release-feature"></span> Added support for the <span class="notranslate">Firebase Authentication</span> emulator. To connect to the emulator, use <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuth#useEmulator(java.lang.String,%20int)"><code translate="no" dir="ltr">FirebaseAuth#useEmulator()</code></a>.</p> <p>Note that if you&#39;re running the <span class="notranslate">Firebase Authentication</span> emulator on &quot;localhost&quot; and connecting from an app that is running inside the Android Emulator, the <span class="notranslate">Firebase Authentication</span> emulator host will be &quot;10.0.2.2&quot; followed by its port.</p></li> <li><p><span class="release-changed"></span> There are several changes to the Phone Authentication &amp; Phone as second-factor flows. The default flows now rely on <a href="//developer.android.com/training/safetynet" class="external">SafetyNet</a> to do application identity verification, and fall back to a web-based reCAPTCHA flow. For more details about setup, refer to the <a href="/docs/auth/android/phone-auth">Phone Authentication getting started guide</a>.</p></li> <li><p><span class="release-feature"></span> Added two methods to help test the other Phone Authentication changes in this release. Call <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuthSettings#forceRecaptchaFlowForTesting(boolean)"><code translate="no" dir="ltr">FirebaseAuthSettings#forceRecaptchaFlowForTesting()</code></a> to disable SafetyNet app verification on phone flows. Call <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuthSettings#setAppVerificationDisabledForTesting(boolean)"><code translate="no" dir="ltr">FirebaseAuthSettings#setAppVerificationDisabledForTesting()</code></a> to disable all app verification on phone flows. Note that disabling app verification will cause flows to fail unless you&#39;re using a testing phone number or are connected to the <span class="notranslate">Firebase Authentication</span> emulator.</p></li> <li><p><span class="release-changed"></span> The method <a href="/docs/reference/android/com/google/firebase/auth/PhoneAuthOptions.Builder#setActivity(android.app.Activity)"><code translate="no" dir="ltr">PhoneAuthOptions.Builder#setActivity(android.app.Activity)</code></a> is now required in order to build a <a href="/docs/reference/android/com/google/firebase/auth/PhoneAuthOptions"><code translate="no" dir="ltr">PhoneAuthOptions</code></a>.</p></li> <li><p><span class="release-removed"></span> Removed the method <code translate="no" dir="ltr">PhoneAuthOptions.Builder#setExecutor(java.util.concurrent.Executor)</code> to accommodate other Phone Authentication changes in this release.</p></li> <li><p><span class="release-deprecated"></span> Deprecated both versions of <code translate="no" dir="ltr">PhoneAuthProvider#verifyPhoneNumber()</code> that take an <code translate="no" dir="ltr">Activity</code> as a parameter.</p></li> <li><p><span class="release-removed"></span> Removed both versions of <code translate="no" dir="ltr">PhoneAuthProvider#verifyPhoneNumber</code> that take an <code translate="no" dir="ltr">Executor</code> as a parameter. These removals accommodate other Phone Authentication changes in this release.</p></li> </ul> <h4 id="auth-ktx_v20-0-0" data-text="Authentication Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v22-0-0" data-text="Cloud Firestore version 22.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 22.0.0</h3> <ul> <li><span class="release-changed"></span> Removed the deprecated <code translate="no" dir="ltr">timestampsInSnapshotsEnabled</code> setting. Any timestamp in a <span class="notranslate">Cloud Firestore</span> document is now returned as a <code translate="no" dir="ltr">Timestamp</code>. To convert <code translate="no" dir="ltr">Timestamp</code> classes to <code translate="no" dir="ltr">java.util.Date</code>, use <a href="/docs/reference/android/com/google/firebase/Timestamp#toDate()"><code translate="no" dir="ltr">Timestamp.toDate()</code></a>.</li> </ul> <h4 id="firestore-ktx_v22-0-0" data-text="Cloud Firestore Kotlin extensions version 22.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 22.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v21-0-0" data-text="Cloud Messaging version 21.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 21.0.0</h3> <ul> <li><p><span class="release-feature"></span> Migrated auto-initialization from Firebase Instance ID to <span class="notranslate">Firebase Cloud Messaging</span>.</p></li> <li><p><span class="release-feature"></span> Added a check for incompatible versions of Firebase Instance ID. An exception is thrown during instantiation if one is found.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue where events were erronously logged to <span class="notranslate">Google Analytics</span> twice.</p></li> </ul> <h4 id="messaging-ktx_v21-0-0" data-text="Cloud Messaging Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-messaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging-directboot_v21-0-0" data-text="Cloud Messaging Direct Boot version 21.0.0" tabindex="-1">Cloud Messaging Direct Boot version 21.0.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, refer to the <a href="/support/release-notes/android#messaging_v21-0-0"><span class="notranslate">Cloud Messaging</span> v21.0.0 release note</a>.</li> </ul> <h3 id="inappmessaging_v19-1-2" data-text="In-App Messaging version 19.1.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.1.2</h3> <ul> <li><span class="release-changed"></span> Internal changes to maintain compatibility with other Firebase SDKs.</li> </ul> <h4 id="inappmessaging-ktx_v19-1-2" data-text="In-App Messaging Kotlin extensions version 19.1.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-1-2" data-text="In-App Messaging Display version 19.1.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.1.2</h3> <ul> <li><span class="release-changed"></span> Internal changes to maintain compatibility with other Firebase SDKs.</li> </ul> <h4 id="inappmessaging-display-ktx_v19-1-2" data-text="In-App Messaging Display Kotlin extensions version 19.1.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="iid_v21-0-0" data-text="Firebase Instance ID version 21.0.0" tabindex="-1">Firebase Instance ID version 21.0.0</h3> <ul> <li><p><span class="release-deprecated"></span> The <code translate="no" dir="ltr">firebase.iid</code> package is now deprecated.</p> <p>To retrieve <span class="notranslate">FCM</span> registration tokens, use the equivalent methods in the <code translate="no" dir="ltr">FirebaseMessaging</code> class. Specifically, call <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#getToken()"><code translate="no" dir="ltr">FirebaseMessaging.getToken()</code></a> instead of <code translate="no" dir="ltr">FirebaseInstanceId.getToken()</code>.</p> <p>If you need to identify specific app installations, use the methods in the <a href="/docs/reference/android/com/google/firebase/installations/FirebaseInstallations"><code translate="no" dir="ltr">FirebaseInstallations</code></a> class to create, access, and delete <span class="notranslate">Firebase</span> installation IDs.</p> <p>For more information, refer to the <a href="/support/release-notes/android#messaging_v21-0-0"><span class="notranslate">Cloud Messaging</span> v21.0.0 release notes</a>.</p></li> <li><p><span class="release-removed"></span> Removed the auto-initialization functionality and migrated it to <span class="notranslate">Firebase Cloud Messaging</span>. For more information, refer to the <a href="/support/release-notes/android#messaging_v21-0-0"><span class="notranslate">Cloud Messaging</span> v21.0.0 release notes</a>.</p> <p>This results in a slight behavior change. Before, a call to <code translate="no" dir="ltr">deleteInstanceId()</code> would automatically generate a new token if auto-initialization was enabled. Now, the new token is only generated on the next app-start or if <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#getToken()"><code translate="no" dir="ltr">getToken()</code></a> is called explicitly.</p></li> </ul> <h3 id="performance_gradle_plugin_v1-3-3" data-text="Performance Monitoring Gradle plugin version 1.3.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Gradle plugin version 1.3.3</h3> <ul> <li><p><span class="release-changed"></span> Improved overall build time for incremental runs by differentiating processing outputs based on <code translate="no" dir="ltr">Jar</code> and <code translate="no" dir="ltr">Directory</code> format.</p></li> <li><p><span class="release-changed"></span> Improved transformation runtime for incremental runs by updating the incremental processing logic for <code translate="no" dir="ltr">Directory</code> inputs to only process changed files.</p></li> <li><p><span class="release-fixed"></span> Fixed the <code translate="no" dir="ltr">DexMergerException</code> build-time failure (during <em>dex merging</em>) by correctly handling the changed files during incremental processing.</p> <p>(<a href="//issuetracker.google.com/issues/164332661" class="external">IssueTracker #164332661</a> and <a href="//issuetracker.google.com/issues/162430661" class="external">IssueTracker #162430661</a>)</p></li> <li><p><span class="release-fixed"></span> Fixed the <code translate="no" dir="ltr">ClassNotFoundException</code> run-time failure (when the app is built on a non-case preserving file system) by updating the transformation logic to process a <code translate="no" dir="ltr">Jar</code> input to a <code translate="no" dir="ltr">Jar</code> output instead of extracting a <code translate="no" dir="ltr">Jar</code> to a <code translate="no" dir="ltr">Directory</code> (which was overwriting files with similar names but with casing differences).</p> <p>(<a href="//issuetracker.google.com/issues/132840182" class="external">IssueTracker #132840182</a>, <a href="//issuetracker.google.com/issues/135171107" class="external">IssueTracker #135171107</a>, <a href="//github.com/stripe/stripe-android/issues/1139" class="external">GitHub Issue Stripe #1139</a>, <a href="//github.com/stripe/stripe-android/issues/1141" class="external">GitHub Issue Stripe #1141</a>, <a href="//github.com/firebase/firebase-android-sdk/issues/1476" class="external">GitHub Issue Stripe #1476</a>)</p></li> <li><p><span class="release-fixed"></span> Fixed the transformed output file names to generate readable names so that they are helpful to later transforms. This was accomplished by using the <a href="//google.github.io/android-gradle-dsl/javadoc/1.5/com/android/build/api/transform/QualifiedContent.html#getName--" class="external"><code translate="no" dir="ltr">getName()</code></a> API provided by the Transform API instead of MD5 hashing the input file path.</p> <p>(<a href="//github.com/minsko/FirebasePerformanceTransformIssue" class="external">GitHub Issue</a>)</p></li> </ul> <h3 id="remote-config_v20-0-0" data-text="Remote Config version 20.0.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 20.0.0</h3> <ul> <li><p><span class="release-removed"></span> Removed the protocol buffer dependency. Also, removed support for configs saved on device using the legacy protocol buffer format (the SDK stopped using this legacy format starting with <span class="notranslate">Remote Config</span> v16.3.0).</p></li> <li><p><span class="release-removed"></span> Removed the deprecated synchronous method <code translate="no" dir="ltr">FirebaseRemoteConfig.activateFetched()</code>. Use the asynchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#activate()"><code translate="no" dir="ltr">FirebaseRemoteConfig.activate()</code></a> instead.</p></li> <li><p><span class="release-removed"></span> Removed the deprecated synchronous methods <code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaults(int)</code> and <code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaults(Map&lt;String,Object&gt;)</code>. Use the asynchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(int)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaultsAsync(int)</code></a> and <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(Map%3CString,Object%3E)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaultsAsync(Map&lt;String,Object&gt;)</code></a> instead.</p></li> <li><p><span class="release-removed"></span> Removed the deprecated synchronous method <code translate="no" dir="ltr">FirebaseRemoteConfig.setConfigSettings(FirebaseRemoteConfigSettings)</code>. Use the asynchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setConfigSettingsAsync(FirebaseRemoteConfigSettings)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings)</code></a> instead.</p></li> <li><p><span class="release-removed"></span> Removed the deprecated method <code translate="no" dir="ltr">FirebaseRemoteConfig.getByteArray(String)</code>. Use <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#getString(String)"><code translate="no" dir="ltr">FirebaseRemoteConfig.getString(String)</code></a> instead.</p></li> <li><p><span class="release-removed"></span> Removed the deprecated methods <code translate="no" dir="ltr">FirebaseRemoteConfigSettings.isDeveloperModeEnabled()</code> and <code translate="no" dir="ltr">FirebaseRemoteConfigSettings.Builder.setDeveloperModeEnabled(boolean)</code>. Use <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings#getMinimumFetchIntervalInSeconds()"><code translate="no" dir="ltr">FirebaseRemoteConfigSettings#getMinimumFetchIntervalInSeconds()</code></a> and <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)"><code translate="no" dir="ltr">FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)</code></a> instead.</p></li> </ul> <h4 id="remote-config-ktx_v20-0-0" data-text="Remote Config Kotlin extensions version 20.0.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 20.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2020-10-23" data-text="Update - October 23, 2020" tabindex="-1">Update - October 23, 2020</h2> <h3 id="bom_v25-13-0" data-text="Firebase Android BoM (Bill of Materials) version 25.13.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> (<span class="notranslate">Bill of Materials</span>) version 25.13.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version</p> <p>Libraries that were versioned with this release are in highlighted rows. <br>Refer to a library's release notes (on this page) for details about its changes. </p> <table> <thead> <th>Artifact name</th> <th>Version mapped<br>to this <span class="notranslate">BoM</span> v25.13.0</th> <th>Version mapped<br>to previous <span class="notranslate">BoM</span> v25.12.0</th> </thead> <tbody> <tr class="alt"> <td><b>com.google.firebase:firebase-ads-lite</b></td> <td><b>19.5.0</b></td> <td><b>19.4.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-ads</b></td> <td><b>19.5.0</b></td> <td><b>19.4.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-analytics-ktx</td> <td>17.6.0</td> <td>17.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-analytics</td> <td>17.6.0</td> <td>17.6.0</td> </tr> <tr> <td>com.google.firebase:firebase-appindexing</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth-ktx</td> <td>19.4.0</td> <td>19.4.0</td> </tr> <tr> <td>com.google.firebase:firebase-auth</td> <td>19.4.0</td> <td>19.4.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common-ktx</b></td> <td><b>19.3.1</b></td> <td><b>N/A</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-common</b></td> <td><b>19.3.1</b></td> <td><b>N/A</b></td> </tr> <tr> <td>com.google.firebase:firebase-config-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-config</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-core</td> <td>17.5.1</td> <td>17.5.1</td> </tr> <tr> <td>com.google.firebase:firebase-crash</td> <td>16.2.1</td> <td>16.2.1</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-buildtools</td> <td>2.3.0</td> <td>2.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-gradle</td> <td>2.3.0</td> <td>2.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.2.2</td> <td>17.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics-ndk</td> <td>17.2.2</td> <td>17.2.2</td> </tr> <tr> <td>com.google.firebase:firebase-crashlytics</td> <td>17.2.2</td> <td>17.2.2</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database-ktx</b></td> <td><b>19.5.1</b></td> <td><b>19.5.0</b></td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-database</b></td> <td><b>19.5.1</b></td> <td><b>19.5.0</b></td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-encoders</td> <td>16.0.0</td> <td>16.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-firestore-ktx</td> <td>21.7.1</td> <td>21.7.1</td> </tr> <tr> <td>com.google.firebase:firebase-firestore</td> <td>21.7.1</td> <td>21.7.1</td> </tr> <tr> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-functions</td> <td>19.1.0</td> <td>19.1.0</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-iid</b></td> <td><b>20.3.0</b></td> <td><b>N/A</b></td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.1</td> <td>19.1.1</td> </tr> <tr> <td>com.google.firebase:firebase-installations-ktx</td> <td>16.3.3</td> <td>16.3.3</td> </tr> <tr class="alt"> <td><b>com.google.firebase:firebase-installations</b></td> <td><b>16.3.3</b></td> <td><b>N/A</b></td> </tr> <tr> <td>com.google.firebase:firebase-invites</td> <td>17.0.0</td> <td>17.0.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-directboot</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging-ktx</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-messaging</td> <td>20.3.0</td> <td>20.3.0</td> </tr> <tr> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td>22.0.4</td> </tr> <tr> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td>24.1.0</td> </tr> <tr> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.0.9</td> <td>19.0.9</td> </tr> <tr> <td>com.google.firebase:firebase-perf</td> <td>19.0.9</td> <td>19.0.9</td> </tr> <tr> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.0</td> <td>19.2.0</td> </tr> <tr> <td>com.google.firebase:firebase-storage</td> <td>19.2.0</td> <td>19.2.0</td> </tr> </tbody> </table> </section> <h3 id="realtime-database_v19-5-1" data-text="Realtime Database version 19.5.1" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.5.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a regression introduced in v19.3.0 that may cause assertion failures, especially when persistence is enabled.</li> </ul> <h4 id="realtime-database-ktx_v19-5-1" data-text="Realtime Database Kotlin extensions version 19.5.1" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.5.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2020-10-06" data-text="Update - October 06, 2020" tabindex="-1">Update - October 06, 2020</h2> <h3 id="bom_v25-12-0" data-text="Firebase Bill of Materials (Firebase BoM) version 25.12.0" tabindex="-1">Firebase Bill of Materials (Firebase BoM) version 25.12.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this BoM version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.6.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.6.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.5.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-encoders:16.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.7.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.7.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-installations-ktx:16.3.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-ktx:20.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf-ktx:19.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.2.0</code></li> </ul> </section> <h3 id="analytics_v17-6-0" data-text="Analytics version 17.6.0" tabindex="-1"><span class="notranslate">Analytics</span> version 17.6.0</h3> <ul> <li><span class="release-feature"></span> Added support for the logging of <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#AD_IMPRESSION"><code translate="no" dir="ltr">Event#AD_IMPRESSION</code></a> events.</li> </ul> <h4 id="analytics-ktx_v17-6-0" data-text="Analytics Kotlin extensions version 17.6.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 17.6.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="firestore_v21-7-1" data-text="Cloud Firestore version 21.7.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.7.1</h3> <ul> <li><span class="release-changed"></span> Added new internal HTTP headers to the gRPC connection.</li> </ul> <h4 id="firestore-ktx_v21-7-1" data-text="Cloud Firestore Kotlin extensions version 21.7.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.7.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="dynamic-links_v19-1-1" data-text="Dynamic Links version 19.1.1" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 19.1.1</h3> <ul> <li><span class="release-changed"></span> Updated to support improvements in the KTX library (see below).</li> </ul> <h4 id="dynamic-links-ktx_19-1-1" data-text="Dynamic Links Kotlin extensions version 19.1.1" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 19.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library and has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Added API support for destructuring of <a href="/docs/reference/kotlin/com/google/firebase/dynamiclinks/ShortDynamicLink"><code translate="no" dir="ltr">ShortDynamicLink</code></a> and <a href="/docs/reference/kotlin/com/google/firebase/dynamiclinks/PendingDynamicLinkData"><code translate="no" dir="ltr">PendingDynamicLinkData</code></a>.</li> </ul> <h3 id="performance_gradle_plugin_v1-3-2" data-text="Performance Monitoring Gradle plugin version 1.3.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Gradle plugin version 1.3.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an <code translate="no" dir="ltr">ArrayIndexOutOfBoundsException</code> when processing Kotlin class files that use both <a href="//kotlinlang.org/docs/reference/inline-functions.html#inline-functions" class="external">Inline Functions</a> and <a href="//kotlinlang.org/docs/reference/whatsnew12.html#multiplatform-projects-experimental" class="external">Multiplatform Projects</a> by upgrading ASM version. (<a href="//github.com/firebase/firebase-android-sdk/issues/1556" class="external">GitHub Issue #1556</a>)</p></li> <li><p><span class="release-changed"></span> Upgraded <a href="//search.maven.org/artifact/org.ow2.asm/asm" class="external"><code translate="no" dir="ltr">asm</code></a> POM dependency from v7.0 to v9.0 and added a new POM dependency on <a href="//search.maven.org/artifact/org.ow2.asm/asm-commons" class="external"><code translate="no" dir="ltr">asm-commons</code></a> v9.0.</p></li> </ul> <h2 id="2020-09-30" data-text="Update - September 30, 2020" tabindex="-1">Update - September 30, 2020</h2> <h3 id="bom_v25-11-0" data-text="Firebase Android BoM version 25.11.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.11.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-encoders:16.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.7.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.7.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-installations-ktx:16.3.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-ktx:20.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf-ktx:19.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.2.0</code></li> </ul> </section> <h3 id="firestore_v21-7-0" data-text="Cloud Firestore version 21.7.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.7.0</h3> <ul> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/firestore/Query#whereNotIn(java.lang.String,%20java.util.List%3C?%20extends%20java.lang.Object%3E)"><code translate="no" dir="ltr">Query.whereNotIn()</code></a> and <a href="/docs/reference/android/com/google/firebase/firestore/Query#whereNotEqualTo(java.lang.String,%20java.lang.Object)"><code translate="no" dir="ltr">Query.whereNotEqualTo()</code></a> query operators.</p> <ul> <li><code translate="no" dir="ltr">Query.whereNotIn()</code> finds documents where a specified field&#39;s value is not in a specified array.</li> <li><code translate="no" dir="ltr">Query.whereNotEqualTo()</code> finds documents where a specified field&#39;s value does not equal the specified value.</li> </ul> <p>Neither query operator finds documents where the specified field isn&#39;t present.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue that caused poor performance for queries that filtered results using nested array values.</p></li> </ul> <h4 id="firestore-ktx_v21-7-0" data-text="Cloud Firestore Kotlin extensions version 21.7.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.7.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v20-3-0" data-text="Cloud Messaging version 20.3.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.3.0</h3> <ul> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#getToken()"><code translate="no" dir="ltr">getToken</code></a> and <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#deleteToken()"><code translate="no" dir="ltr">deleteToken</code></a> methods directly to <code translate="no" dir="ltr">FirebaseMessaging</code>.</p></li> <li><p><span class="release-changed"></span> Internal changes to the Google Play services interface to improve future development velocity.</p></li> </ul> <h4 id="messaging-ktx_v20-3-0" data-text="Cloud Messaging Kotlin extensions version 20.3.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> Kotlin extensions version 20.3.0</h4> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Cloud Messaging</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-messaging</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/messaging/ktx/package-summary"><span class="notranslate">Cloud Messaging</span> KTX documentation</a>.</li> </ul> <h3 id="messaging-directboot_v20-3-0" data-text="Cloud Messaging Direct Boot version 20.3.0" tabindex="-1">Cloud Messaging Direct Boot version 20.3.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to the Google Play services interface to improve future development velocity.</li> </ul> <h3 id="crashlytics_v17-2-2" data-text="Crashlytics version 17.2.2" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.2.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed crash that can occur when using a built-in resource as the app launcher icon. (<a href="//github.com/firebase/firebase-android-sdk/issues/1935" class="external">Github Issue #1935</a>)</p></li> <li><p><span class="release-fixed"></span> Fixed a bug preventing crash reports from being sent in some cases when an app is using <span class="notranslate">Crashlytics</span> on multiple processes.</p></li> </ul> <h4 id="crashlytics-ktx_v17-2-2" data-text="Crashlytics Kotlin extensions version 17.2.2" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 17.2.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v17-2-2" data-text="Crashlytics NDK version 17.2.2" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.2.2</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.2.2.</li> </ul> <h3 id="installations_for-ktx" data-text="Firebase installations" tabindex="-1"><span class="notranslate">Firebase</span> installations</h3> <p>The <span class="notranslate">Firebase</span> installations library has not changed since its last release (<a href="/support/release-notes/android#installations_v16-3-3">v16.3.3</a>). This entry is to accommodate the release of the <span class="notranslate">Firebase</span> installations KTX library.</p> <h4 id="installations-ktx_v16-3-3" data-text="Firebase installations Kotlin extensions version 16.3.3" tabindex="-1"><span class="notranslate">Firebase</span> installations Kotlin extensions version 16.3.3</h4> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Firebase</span> installations Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-installations</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/installations/ktx/package-summary"><span class="notranslate">Firebase</span> installations KTX documentation</a>.</li> </ul> <h3 id="iid_v20-3-0" data-text="Firebase Instance ID version 20.3.0" tabindex="-1">Firebase Instance ID version 20.3.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to the Google Play services interface to improve future development velocity.</li> </ul> <h3 id="performance_v19-0-9" data-text="Performance Monitoring version 19.0.9" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.9</h3> <ul> <li><p><span class="release-fixed"></span> Created lazy dependency on <span class="notranslate">Firebase Remote Config</span> to avoid main thread contention issue. (<a href="//github.com/firebase/firebase-android-sdk/issues/1810" class="external">GitHub Issue #1810</a>)</p></li> <li><p><span class="release-changed"></span> Updated the protocol buffer dependency to the <code translate="no" dir="ltr">protobuf-javalite</code> artifact to allow for backward compatibility.</p></li> <li><p><span class="release-changed"></span> Removed Guava dependency from the SDK to avoid symbol collision with any other SDKs.</p></li> <li><p><span class="release-changed"></span> Removed proguarding for SDK; logcat messages will show original class paths for debugging.</p></li> <li><p><span class="release-changed"></span> Improved build configurations and dependencies to reduce SDK size.</p></li> </ul> <h4 id="performance-ktx_v19-0-9" data-text="Performance Monitoring Kotlin extensions version 19.0.9" tabindex="-1"><span class="notranslate">Performance Monitoring</span> Kotlin extensions version 19.0.9</h4> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Firebase Performance Monitoring</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-performance</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/perf/ktx/package-summary"><span class="notranslate">Performance Monitoring</span> KTX documentation</a>.</li> </ul> <h3 id="realtime-database_v19-5-0" data-text="Realtime Database version 19.5.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.5.0</h3> <ul> <li><span class="release-feature"></span> The SDK can now infer a default database URL even if it is omitted in the project&#39;s configuration.</li> </ul> <h4 id="realtime-database-ktx_v19-5-0" data-text="Realtime Database Kotlin extensions version 19.5.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.5.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="google-services_plugin_v4-3-4" data-text="google-services plugin 4.3.4" tabindex="-1">google-services plugin 4.3.4</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">strict-version-matcher</code> dependency to v1.2.2.</li> </ul> <h3 id="strict-version-matching_plugin_v1-2-2" data-text="strict-version-matching plugin 1.2.2" tabindex="-1">strict-version-matching plugin 1.2.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that could cause dependencies to be stored multiple times.</li> </ul> <h2 id="2020-09-11" data-text="Update - September 11, 2020" tabindex="-1">Update - September 11, 2020</h2> <h3 id="auth_v19-4-0" data-text="Authentication version 19.4.0" tabindex="-1"><span class="notranslate">Authentication</span> version 19.4.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="https://cloud.google.com/identity-platform/docs/multi-tenancy">multi-tenancy</a> support for Google Cloud Identity Platform developers.</li> </ul> <h4 id="auth-ktx_v19-4-0" data-text="Authentication Kotlin extensions version 19.4.0" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 19.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appdistro_fastlane_plugin_v0-2-0" data-text="App Distribution fastlane plugin version 0.2.0" tabindex="-1"><span class="notranslate">App Distribution</span> fastlane plugin version 0.2.0</h3> <ul> <li><span class="release-changed"></span> The <span class="notranslate">App Distribution</span> fastlane plugin no longer relies on the Firebase CLI to authenticate users and requests. For more information, visit <a href="/docs/app-distribution/android/distribute-fastlane">Distribute an app with fastlane</a>.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-3-0" data-text="Crashlytics Gradle plugin version 2.3.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.3.0</h3> <ul> <li><span class="release-changed"></span> Improved memory usage to address OutOfMemoryErrors when generating native symbol files.</li> </ul> <h3 id="bom_v25-10-0" data-text="Firebase Android BoM version 25.10.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.10.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.6.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.6.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.2.0</code></li> </ul> </section> <h2 id="2020-08-27" data-text="Update - August 27, 2020" tabindex="-1">Update - August 27, 2020</h2> <h3 id="firestore_v21-6-0" data-text="Cloud Firestore version 21.6.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.6.0</h3> <ul> <li><p><span class="release-fixed"></span> Removed a delay that may have prevented <span class="notranslate">Cloud Firestore</span> from immediately reestablishing a network connection if a connectivity change occurred while the app was in the background.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue that may have prevented the client from connecting to the backend immediately after a user signed in.</p></li> <li><p><span class="release-feature"></span> Added support for connecting to the Firebase Emulator Suite via a new method, <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#useEmulator(java.lang.String,%20int)"><code translate="no" dir="ltr">FirebaseFirestore#useEmulator()</code></a>.</p></li> </ul> <h4 id="firestore-ktx_v21-6-0" data-text="Cloud Firestore Kotlin extensions version 21.6.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.6.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v19-1-0" data-text="Cloud Functions for Firebase Client SDK version 19.1.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 19.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for connecting to the Firebase Emulator Suite via a new method, <a href="/docs/reference/android/com/google/firebase/functions/FirebaseFunctions#useEmulator(java.lang.String,%20int)"><code translate="no" dir="ltr">FirebaseFunctions#UseEmulator()</code></a>.</p></li> <li><p><span class="release-deprecated"></span> Deprecated the <code translate="no" dir="ltr">useFunctionsEmulator(String)</code> method.</p></li> </ul> <h4 id="functions-client-ktx_v19-1-0" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 19.1.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 19.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="storage_v19-2-0" data-text="Cloud Storage for Firebase version 19.2.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 19.2.0</h3> <ul> <li><span class="release-changed"></span> Updated to support improvements in the KTX library (see below).</li> </ul> <h4 id="storage-ktx_v19-2-0" data-text="Cloud Storage for Firebase Kotlin extensions version 19.2.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 19.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library and has the following additional updates:</p> <ul> <li><span class="release-feature"></span> Added API support for destructuring of <a href="/docs/reference/kotlin/com/google/firebase/storage/StreamDownloadTask.TaskSnapshot"><code translate="no" dir="ltr">TaskSnapshot</code></a> and <a href="/docs/reference/kotlin/com/google/firebase/storage/ListResult"><code translate="no" dir="ltr">ListResult</code></a>.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-2-1" data-text="Crashlytics Gradle plugin version 2.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.2.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue causing &quot;Could not set unknown property &#39;obfuscatorVersion&#39; for extension &#39;firebaseCrashlytics&#39;&quot; error when building with DexGuard.</li> </ul> <h3 id="inappmessaging_v19-1-1" data-text="In-App Messaging version 19.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.1.1</h3> <ul> <li><p><span class="release-fixed"></span> Improved link handling on devices without any browser installed or without Chrome installed.</p></li> <li><p><span class="release-feature"></span> Added the ability to register a dismiss listener that reacts to message dismissal.</p></li> </ul> <h4 id="inappmessaging-ktx_v19-1-1" data-text="In-App Messaging Kotlin extensions version 19.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-1-1" data-text="In-App Messaging Display version 19.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.1.1</h3> <ul> <li><p><span class="release-fixed"></span> Improved link handling on devices without any browser installed or without Chrome installed.</p></li> <li><p><span class="release-feature"></span> Added the ability to register a dismiss listener that reacts to message dismissal.</p></li> </ul> <h4 id="inappmessaging-display-ktx_v19-1-1" data-text="In-App Messaging Display Kotlin extensions version 19.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v19-4-0" data-text="Realtime Database version 19.4.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.4.0</h3> <ul> <li><span class="release-feature"></span> Added support for connecting to the Firebase Emulator Suite via a new method, <a href="/docs/reference/android/com/google/firebase/database/FirebaseDatabase#useEmulator(java.lang.String,%20int)"><code translate="no" dir="ltr">FirebaseDatabase#useEmulator()</code></a>.</li> </ul> <h4 id="realtime-database-ktx_v19-4-0" data-text="Realtime Database Kotlin extensions version 19.4.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v25-9-0" data-text="Firebase Android BoM version 25.9.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.9.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.6.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.6.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.2.0</code></li> </ul> </section> <h2 id="2020-08-14" data-text="Update - August 14, 2020" tabindex="-1">Update - August 14, 2020</h2> <h3 id="analytics_v17-5-0" data-text="Analytics version 17.5.0" tabindex="-1"><span class="notranslate">Analytics</span> version 17.5.0</h3> <ul> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics#public-void-setdefaulteventparameters-bundle-parameters"><code translate="no" dir="ltr">setDefaultEventParameters</code></a> API to support setting parameters that are logged on all events.</p></li> <li><p><span class="release-changed"></span> Added support for disabling automatic screen views by setting <code translate="no" dir="ltr">google_analytics_automatic_screen_reporting_enabled</code> to false in <code translate="no" dir="ltr">AndroidManifest.xml</code>.</p></li> <li><p><span class="release-deprecated"></span> The <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics#public-void-setcurrentscreen-activity-activity,-string-screenname,-string-screenclassoverride"><code translate="no" dir="ltr">setCurrentScreen</code></a> API is now deprecated and will be removed in a future release.</p></li> <li><p><span class="release-changed"></span> Added support for manually logging screen views with the <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics#public-void-logevent-string-name,-bundle-params"><code translate="no" dir="ltr">logEvent</code></a> API. This replaces the deprecated <code translate="no" dir="ltr">setCurrentScreen</code> API.</p></li> </ul> <h4 id="analytics-ktx_v17-5-0" data-text="Analytics Kotlin extensions version 17.5.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 17.5.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appdistro_gradle_plugin_v2-0-1" data-text="App Distribution Gradle plugin version 2.0.1" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 2.0.1</h3> <ul> <li><span class="release-changed"></span> Updated the OAuth client dependency to the newest <code translate="no" dir="ltr">google-oauth-client</code> artifact.</li> </ul> <h3 id="crashlytics_v17-2-1" data-text="Crashlytics version 17.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.2.1</h3> <ul> <li><p><span class="release-fixed"></span> Improved handling of asynchronous tasks that need to wait for completion on the main thread. (<a href="//github.com/firebase/firebase-android-sdk/pull/1739" class="external">Github PR #1739</a>)</p></li> <li><p><span class="release-changed"></span> Added an overload to the <code translate="no" dir="ltr">setCrashlyticsCollectionEnabled</code> API to allow for passing <code translate="no" dir="ltr">null</code> to clear any previously set value. (<a href="//github.com/firebase/firebase-android-sdk/pull/1434" class="external">Github PR #1434</a>)</p></li> <li><p><span class="release-changed"></span> Migrated to use the <span class="notranslate">Firebase</span> installations service <em>directly</em> instead of using an indirect dependency via the Firebase Instance ID SDK. (<a href="//github.com/firebase/firebase-android-sdk/pull/1760" class="external">Github PR #1760</a>)</p> <aside class="note">When using this library, if you are <em>explicitly</em> calling <a href="/docs/reference/android/com/google/firebase/iid/package-summary">Instance ID APIs</a> and relying on an indirect dependency for the Instance ID SDK, you can do either of the following: <ul> <li>Update your application to add a <strong>direct</strong> dependency on the Instance ID SDK.</li> <li>Use the new <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations SDK</a> to access client identifiers, which include <span class="notranslate">Firebase</span> installation IDs or installation auth tokens.</li> </ul> </aside></li> </ul> <h4 id="crashlytics-ktx_v17-2-1" data-text="Crashlytics Kotlin extensions version 17.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 17.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v17-2-1" data-text="Crashlytics NDK version 17.2.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.2.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed signal handler to properly release storage on app exit. (<a href="https://github.com/firebase/firebase-android-sdk/issues/1749">Github Issue #1749</a>)</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.2.1.</p></li> </ul> <h3 id="mlkit-common_v22-1-2" data-text="ML Kit for Firebase Common version 22.1.2" tabindex="-1">ML Kit for Firebase Common version 22.1.2</h3> <ul> <li><p><span class="release-changed"></span> Migrated to use the <span class="notranslate">Firebase</span> installations service <em>directly</em> instead of using an indirect dependency via the Firebase Instance ID SDK.</p> <aside class="note">When using this library, if you are <em>explicitly</em> calling <a href="/docs/reference/android/com/google/firebase/iid/package-summary">Instance ID APIs</a> and relying on an indirect dependency for the Instance ID SDK, you can do either of the following: <ul> <li>Update your application to add a <strong>direct</strong> dependency on the Instance ID SDK.</li> <li>Use the new <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations SDK</a> to access client identifiers, which include <span class="notranslate">Firebase</span> installation IDs or installation auth tokens.</li> </ul> </aside></li> </ul> <h3 id="mlkit-model-interpreter_v22-0-4" data-text="ML Kit for Firebase Model Interpreter version 22.0.4" tabindex="-1">ML Kit for Firebase Model Interpreter version 22.0.4</h3> <ul> <li><span class="release-deprecated"></span> Deprecated the custom model interpreter API in favor of TensorFlow Lite. For more information, refer to the <a href="/docs/ml/android/use-custom-models">custom model implementation instructions</a>.</li> </ul> <h3 id="mlkit-natural-lang_v22-0-1" data-text="ML Kit for Firebase Natural Language version 22.0.1" tabindex="-1">ML Kit for Firebase Natural Language version 22.0.1</h3> <ul> <li><span class="release-deprecated"></span> The new standalone ML Kit SDK replaces this SDK. For more information, refer to the <a href="//developers.google.com/ml-kit/migration">migration guide</a>.</li> </ul> <h3 id="mlkit-natural-lang-id-model_v20-0-8" data-text="ML Kit for Firebase Language Identification Model version 20.0.8" tabindex="-1">ML Kit for Firebase Language Identification Model version 20.0.8</h3> <ul> <li><span class="release-deprecated"></span> The new standalone ML Kit SDK replaces this SDK. For more information, refer to the <a href="//developers.google.com/ml-kit/migration">migration guide</a>.</li> </ul> <h3 id="mlkit-smart-reply-model_v20-0-8" data-text="ML Kit for Firebase Smart Reply Model version 20.0.8" tabindex="-1">ML Kit for Firebase Smart Reply Model version 20.0.8</h3> <ul> <li><span class="release-deprecated"></span> The new standalone ML Kit SDK replaces this SDK. For more information, refer to the <a href="//developers.google.com/ml-kit/migration">migration guide</a>.</li> </ul> <h3 id="mlkit-translate-model_v20-0-9" data-text="ML Kit for Firebase Translate Model version 20.0.9" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.9</h3> <ul> <li><span class="release-deprecated"></span> The new standalone ML Kit SDK replaces this SDK. For more information, refer to the <a href="//developers.google.com/ml-kit/migration">migration guide</a>.</li> </ul> <h3 id="mlkit-vision_v24-1-0" data-text="ML Kit for Firebase Vision version 24.1.0" tabindex="-1">ML Kit for Firebase Vision version 24.1.0</h3> <aside class="caution">The ML Kit library versions in this release have known issues with incompatible dependency versioning. Until a fix is released soon, follow the instructions for some <a href="#mlkit-self-serve-fixes">self-serve fixes</a> below. </aside> <ul> <li><span class="release-deprecated"></span> The new standalone ML Kit SDK replaces this SDK. For more information, refer to the <a href="//developers.google.com/ml-kit/migration">migration guide</a>.</li> </ul> <h3 id="mlkit-vision-automl_v18-0-6" data-text="ML Kit for Firebase Vision AutoML version 18.0.6" tabindex="-1">ML Kit for Firebase Vision AutoML version 18.0.6</h3> <ul> <li><span class="release-deprecated"></span> The new standalone ML Kit SDK replaces this SDK. For more information, refer to the <a href="//developers.google.com/ml-kit/migration">migration guide</a>.</li> </ul> <h3 id="mlkit-vision-barcode-model_v16-1-2" data-text="ML Kit for Firebase Barcode Model version 16.1.2" tabindex="-1">ML Kit for Firebase Barcode Model version 16.1.2</h3> <ul> <li><span class="release-deprecated"></span> The new standalone ML Kit SDK replaces this SDK. For more information, refer to the <a href="//developers.google.com/ml-kit/migration">migration guide</a>.</li> </ul> <h3 id="mlkit-obj-detection-tracking-model_v19-0-6" data-text="ML Kit for Firebase Object Detection and Tracking Model version 19.0.6" tabindex="-1">ML Kit for Firebase Object Detection and Tracking Model version 19.0.6</h3> <ul> <li><span class="release-deprecated"></span> The new standalone ML Kit SDK replaces this SDK. For more information, refer to the <a href="//developers.google.com/ml-kit/migration">migration guide</a>.</li> </ul> <h3 id="bom_v25-8-0" data-text="Firebase Android BoM version 25.8.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.8.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <p><br></p> <aside class="caution" id="mlkit-self-serve-fixes"> <p><strong>The ML Kit library versions in this release have known issues with incompatible dependency versioning.</strong><br> You may see these issues as the following: </p> <ul> <li><code translate="no" dir="ltr">java.lang.RuntimeException: Duplicate class com.google.android.gms.internal.vision</code> exceptions </li> <li><code translate="no" dir="ltr">Google Play services library dependency depends on another at an exact version</code> error (thrown by the <code translate="no" dir="ltr">google-services</code> plugin) </li> </ul> <p>We'll have these issues fixed in the near future. Until then, here are a few self-serve fixes that involve including an additional library into your build based on the ML library that you're using. If you're using more than one of these faulty libraries, make sure to include each corresponding fix. </p> <div> <devsite-expandable> <p class="showalways">View the fix for <code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.1.0</code></p> <p>If you're using <code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.1.0</code>, also include:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Carbon"><span class="devsite-syntax-nx">implementation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-err">'</span><span class="devsite-syntax-nx">com</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">google</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">android</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">gms</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-nx">play</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">services</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">vision</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-m devsite-syntax-m-Double">20.1.1</span><span class="devsite-syntax-err">'</span> <span class="devsite-syntax-nx">implementation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-err">'</span><span class="devsite-syntax-nx">com</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">google</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">android</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">gms</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-nx">play</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">services</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">vision</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">common</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-m devsite-syntax-m-Double">19.1.1</span><span class="devsite-syntax-err">'</span></pre></devsite-code> </devsite-expandable> </div> <div> <devsite-expandable> <p class="showalways">View the fix for <code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.2</code></p> <p>If you're using <code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.2</code>, also include:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Carbon"><span class="devsite-syntax-nx">implementation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-err">'</span><span class="devsite-syntax-nx">com</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">google</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">firebase</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-nx">firebase</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">ml</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">vision</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">image</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">label</span><span class="devsite-syntax-o">-</span><span class="devsite-syntax-nx">model</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-m devsite-syntax-m-Double">20.0.2</span><span class="devsite-syntax-err">'</span></pre></devsite-code> </devsite-expandable> </div> <div> <devsite-expandable> <p class="showalways">View the fix for <code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.2</code></p> <p>If you're using <code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.2</code>, also include:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> implementation 'com.google.android.gms:play-services-vision-face-contour-internal:16.0.2' </pre></devsite-code> </devsite-expandable> </div> </aside> <h2 id="2020-07-30" data-text="Update - July 30, 2020" tabindex="-1">Update - July 30, 2020</h2> <h3 id="installations_v16-3-3" data-text="Firebase installations version 16.3.3" tabindex="-1"><span class="notranslate">Firebase</span> installations version 16.3.3</h3> <ul> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">NullPointerException</code> that occurred when Firebase services tried to register a <span class="notranslate">Firebase</span> installation ID (FID) with the <span class="notranslate">Firebase</span> installations server. (<a href="//github.com/firebase/firebase-android-sdk/issues/1787" class="external">GitHub Issue #1787</a>)</li> </ul> <h3 id="iid_v20-2-4" data-text="Firebase Instance ID version 20.2.4" tabindex="-1">Firebase Instance ID version 20.2.4</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more information, refer to the <a href="/support/release-notes/android#installations_v16-3-3">Firebase Installations v16.3.3 release notes</a>.</li> </ul> <h3 id="messaging_v20-2-4" data-text="Cloud Messaging version 20.2.4" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.2.4</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more information, refer to the <a href="/support/release-notes/android#installations_v16-3-3">Firebase Installations v16.3.3 release notes</a>.</li> </ul> <h3 id="messaging-directboot_v20-2-4" data-text="Cloud Messaging Direct Boot version 20.2.4" tabindex="-1">Cloud Messaging Direct Boot version 20.2.4</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more information, refer to the <a href="/support/release-notes/android#installations_v16-3-3">Firebase Installations v16.3.3 release notes</a>.</li> </ul> <h3 id="bom_v25-7-0" data-text="Firebase Android BoM version 25.7.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.7.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-07-17" data-text="Update - July 17, 2020" tabindex="-1">Update - July 17, 2020</h2> <h3 id="performance_v19-0-8" data-text="Performance Monitoring version 19.0.8" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.8</h3> <ul> <li><p><span class="release-changed"></span> Updated the <a href="/docs/perf-mon/get-started-android#view-log-messages">logging message</a> for performance events.</p></li> <li><p><span class="release-fixed"></span> Silenced <span class="notranslate">Firebase Remote Config</span> logging triggered by <span class="notranslate">Firebase Performance Monitoring</span>. (<a href="//github.com/firebase/firebase-android-sdk/issues/403" class="external">GitHub Issue #403</a>)</p></li> <li><p><span class="release-fixed"></span> Removed unnecessary logging. <span class="notranslate">Performance Monitoring</span> now only logs debug information if the <code translate="no" dir="ltr">firebase_performance_logcat_enabled</code> setting is <code translate="no" dir="ltr">true</code> in <code translate="no" dir="ltr">AndroidManifest.xml</code>. Visit the documentation for details about explicitly <a href="/docs/perf-mon/get-started-android#view-log-messages">enabling debug logging</a>.</p></li> <li><p><span class="release-changed"></span> Migrated to use the <span class="notranslate">Firebase</span> installations service <em>directly</em> instead of using an indirect dependency via the Firebase Instance ID SDK.</p> <aside class="note">When using this library, if you are <em>explicitly</em> calling <a href="/docs/reference/android/com/google/firebase/iid/package-summary">Instance ID APIs</a> and relying on an indirect dependency for the Instance ID SDK, you can do either of the following: <ul> <li>Update your application to add a <strong>direct</strong> dependency on the Instance ID SDK.</li> <li>Use the new <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations SDK</a> to access client identifiers, which include <span class="notranslate">Firebase</span> installation IDs or installation auth tokens.</li> </ul> </aside></li> </ul> <h3 id="bom_v25-6-1" data-text="Firebase Android BoM version 25.6.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.6.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-07-08" data-text="Update - July 08, 2020" tabindex="-1">Update - July 08, 2020</h2> <h3 id="messaging_v20-2-3" data-text="Cloud Messaging version 20.2.3" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.2.3</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused an app to crash when a user tapped on a received notification.</li> </ul> <h3 id="messaging-directboot_v20-2-3" data-text="Cloud Messaging Direct Boot version 20.2.3" tabindex="-1">Cloud Messaging Direct Boot version 20.2.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, see the <a href="/support/release-notes/android#messaging_v20-2-3"><code translate="no" dir="ltr">firebase-messaging</code> v20.2.3 release note</a>.</li> </ul> <h3 id="iid_v20-2-3" data-text="Firebase Instance ID version 20.2.3" tabindex="-1">Firebase Instance ID version 20.2.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more details, see the <a href="/support/release-notes/android#messaging_v20-2-3"><code translate="no" dir="ltr">firebase-messaging</code> v20.2.3 release note</a>.</li> </ul> <h3 id="bom_v25-6-0" data-text="Firebase Android BoM version 25.6.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.6.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.4.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-07-06" data-text="Update - July 06, 2020" tabindex="-1">Update - July 06, 2020</h2> <h3 id="analytics_v17-4-4" data-text="Analytics version 17.4.4" tabindex="-1"><span class="notranslate">Analytics</span> version 17.4.4</h3> <ul> <li><p><span class="release-changed"></span> Migrated to use the <span class="notranslate">Firebase</span> installations service <em>directly</em> instead of using an indirect dependency via the Firebase Instance ID SDK.</p> <aside class="note">When using this library, if you are <em>explicitly</em> calling <a href="/docs/reference/android/com/google/firebase/iid/package-summary">Instance ID APIs</a> and relying on an indirect dependency for the Instance ID SDK, you can do either of the following: <ul> <li>Update your application to add a <strong>direct</strong> dependency on the Instance ID SDK.</li> <li>Use the new <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations SDK</a> to access client identifiers, which include <span class="notranslate">Firebase</span> installation IDs or installation auth tokens.</li> </ul> </aside></li> </ul> <h4 id="analytics-ktx_v17-4-3" data-text="Analytics Kotlin extensions version 17.4.3" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 17.4.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="auth_v19-3-2" data-text="Authentication version 19.3.2" tabindex="-1"><span class="notranslate">Authentication</span> version 19.3.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an infinite loop that occurs at startup in certain Generic IDP operations.</li> </ul> <h4 id="auth-ktx_v19-3-2" data-text="Authentication Kotlin extensions version 19.3.2" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 19.3.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-auth</code> library. The Kotlin extensions library has the following additional updates:</p> <ul> <li><span class="release-fixed"></span> Internal improvements and bug fixes for internal processes.</li> </ul> <h3 id="firestore_v21-5-0" data-text="Cloud Firestore version 21.5.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.5.0</h3> <ul> <li><span class="release-changed"></span> Updated the protocol buffer dependency to the newer <code translate="no" dir="ltr">protobuf-javalite</code> artifact. The new artifact is incompatible with the old one, so this library needed to be upgraded to avoid conflicts. No developer action is necessary.</li> </ul> <h4 id="firestore-ktx_v21-5-0" data-text="Cloud Firestore Kotlin extensions version 21.5.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.5.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v20-2-2" data-text="Cloud Messaging version 20.2.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.2.2</h3> <aside class="warning"><strong>Warning:</strong><span> <strong>This version of <code translate="no" dir="ltr">firebase-messaging</code> (v20.2.2) should not be used.</strong> It has a known issue that causes an app to crash when a user taps on a received notification. A fix for this issue was released on July 08, 2020 (see <a href="/support/release-notes/android#messaging_v20-2-3">v20.2.3</a>).</span></aside> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="messaging-directboot_v20-2-2" data-text="Cloud Messaging Direct Boot version 20.2.2" tabindex="-1">Cloud Messaging Direct Boot version 20.2.2</h3> <aside class="warning"><strong>Warning:</strong><span> <strong>This version of <code translate="no" dir="ltr">firebase-messaging-directboot</code> (v20.2.2) should not be used.</strong> A related library has a known issue (for more details, see <a href="/support/release-notes/android#messaging_v20-2-2"><code translate="no" dir="ltr">firebase-messaging</code> v20.2.2</a>). A fix for this issue was released on July 08, 2020 (see <a href="/support/release-notes/android#messaging-directboot_v20-2-3">v20.2.3</a>).</span></aside> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="crashlytics_v17-1-1" data-text="Crashlytics version 17.1.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.1.1</h3> <ul> <li><span class="release-changed"></span> To improve the reliability of submitting crash uploads on poor networks, changed the Transport SDK to retry connection errors (<a href="//github.com/firebase/firebase-android-sdk/issues/1705" class="external">Github Issue #1705</a>) and increased the number of retries before deleting events (<a href="//github.com/firebase/firebase-android-sdk/issues/1708" class="external">Github Issue #1708</a>).</li> </ul> <h4 id="crashlytics-ktx_v17-1-1" data-text="Crashlytics Kotlin extensions version 17.1.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 17.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-crashlytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics-ndk_v17-1-1" data-text="Crashlytics NDK version 17.1.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.1.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.1.1.</li> </ul> <h3 id="inappmessaging_v19-1-0" data-text="In-App Messaging version 19.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.1.0</h3> <ul> <li><span class="release-changed"></span> Updated the protocol buffer dependency to the newer <code translate="no" dir="ltr">protobuf-javalite</code> artifact. The new artifact is incompatible with the old one, so this library needed to be upgraded to avoid conflicts. No developer action is necessary.</li> </ul> <h4 id="inappmessaging-ktx_v19-1-0" data-text="In-App Messaging Kotlin extensions version 19.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-1-0" data-text="In-App Messaging Display version 19.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.1.0</h3> <ul> <li><span class="release-changed"></span> Updated the protocol buffer dependency to the newer <code translate="no" dir="ltr">protobuf-javalite</code> artifact. The new artifact is incompatible with the old one, so this library needed to be upgraded to avoid conflicts. No developer action is necessary.</li> </ul> <h4 id="inappmessaging-display-ktx_v19-1-0" data-text="In-App Messaging Display Kotlin extensions version 19.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="iid_v20-2-2" data-text="Firebase Instance ID version 20.2.2" tabindex="-1">Firebase Instance ID version 20.2.2</h3> <aside class="warning"><strong>Warning:</strong><span> <strong>This version of <code translate="no" dir="ltr">firebase-iid</code> (v20.2.2) should not be used.</strong> A related library has a known issue (for more details, see <a href="/support/release-notes/android#messaging_v20-2-2"><code translate="no" dir="ltr">firebase-messaging</code> v20.2.2</a>). A fix for this issue was released on July 08, 2020 (see <a href="/support/release-notes/android#iid_v20-2-3">v20.2.3</a>).</span></aside> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="remote-config_v19-2-0" data-text="Remote Config version 19.2.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.2.0</h3> <ul> <li><p><span class="release-changed"></span> Migrated to use the <span class="notranslate">Firebase</span> installations service <em>directly</em> instead of using an indirect dependency via the Firebase Instance ID SDK.</p> <aside class="note">When using this library, if you are <em>explicitly</em> calling <a href="/docs/reference/android/com/google/firebase/iid/package-summary">Instance ID APIs</a> and relying on an indirect dependency for the Instance ID SDK, you can do either of the following: <ul> <li>Update your application to add a <strong>direct</strong> dependency on the Instance ID SDK.</li> <li>Use the new <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations SDK</a> to access client identifiers, which include <span class="notranslate">Firebase</span> installation IDs or installation auth tokens.</li> </ul> </aside></li> <li><p><span class="release-changed"></span> Updated the protocol buffer dependency to the newer <code translate="no" dir="ltr">protobuf-javalite</code> artifact. The new artifact is incompatible with the old one, so this library needed to be upgraded to avoid conflicts. No developer action is necessary.</p></li> </ul> <h4 id="remote-config-ktx_v19-2-0" data-text="Remote Config Kotlin extensions version 19.2.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h2 id="2020-06-18" data-text="Update - June 18, 2020" tabindex="-1">Update - June 18, 2020</h2> <h3 id="messaging_v20-2-1" data-text="Cloud Messaging version 20.2.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.2.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more information, refer to the <a href="/support/release-notes/android#iid_v20-2-1">Firebase Instance ID v20.2.1 release notes</a>.</li> </ul> <h3 id="messaging-directboot_v20-2-1" data-text="Cloud Messaging Direct Boot version 20.2.1" tabindex="-1">Cloud Messaging Direct Boot version 20.2.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases. For more information, refer to the <a href="/support/release-notes/android#iid_v20-2-1">Firebase Instance ID v20.2.1 release notes</a>.</li> </ul> <h3 id="crashlytics_v17-1-0" data-text="Crashlytics version 17.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.1.0</h3> <ul> <li><p><span class="release-fixed"></span> Updated <span class="notranslate">Crashlytics</span> integration with <span class="notranslate">Google Analytics</span> to include native crashes in crash-free users counts.</p></li> <li><p><span class="release-fixed"></span> Removed a harmless, yet unexpected <code translate="no" dir="ltr">FileNotFoundException</code> log output that printed when an optional file is unavailable. (<a href="//github.com/firebase/firebase-android-sdk/issues/1559#issuecomment-638387614" class="external">Github Issue #1559</a>)</p></li> </ul> <h4 id="crashlytics-ktx_v17-1-0" data-text="Crashlytics Kotlin extensions version 17.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Kotlin extensions version 17.1.0</h4> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Firebase Crashlytics</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-crashlytics</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/crashlytics/ktx/package-summary"><span class="notranslate">Crashlytics</span> KTX documentation</a>.</li> </ul> <h3 id="crashlytics-ndk_v17-1-0" data-text="Crashlytics NDK version 17.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.1.0</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.1.0.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-2-0" data-text="Crashlytics Gradle plugin version 2.2.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.2.0</h3> <p>This update to <code translate="no" dir="ltr">firebase-crashlytics-gradle</code> includes several changes to <span class="notranslate">Crashlytics</span> task configuration and dependency declarations, which improves incremental build performance and fixes several known issues.</p> <ul> <li><p><span class="release-changed"></span> Improved <a href="//docs.gradle.org/current/userguide/task_configuration_avoidance.html" class="external">Task Configuration Avoidance</a> for NDK symbol generation and upload tasks.</p></li> <li><p><span class="release-changed"></span> Improved support for native symbol uploads for NDK libraries that are not built using the standard Android NDK toolchain. For more information, refer to <a href="/docs/crashlytics/ndk-reports#upload-external-dependencies">Upload symbols for external dependencies</a>.</p></li> <li><p><span class="release-fixed"></span> Fixed a crash that could occur when running the <span class="notranslate">Crashlytics</span> native symbol upload task on a clean build. This was due to a task dependency configuration bug, which also could result in incorrect symbols being generated for some builds.</p></li> <li><p><span class="release-fixed"></span> Fixed a bug that prevented the use of absolute paths in the <code translate="no" dir="ltr">firebaseCrashlytics.strippedNativeLibsDir</code> and <code translate="no" dir="ltr">firebaseCrashlytics.unstrippedNativeLibsDir</code> extension properties. Absolute paths are now resolved correctly; relative paths are resolved relative to the build file directory. (<a href="//github.com/firebase/firebase-android-sdk/issues/1199" class="external">GitHub Issue #1199</a>)</p></li> <li><p><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">MissingPropertyException</code> thrown during <span class="notranslate">Crashlytics</span> native symbol generation tasks, when using Android Gradle plugin 4.1.alpha08+.</p></li> <li><p><span class="release-changed"></span> The <span class="notranslate">Crashlytics</span> plugin now throws a <code translate="no" dir="ltr">GradleException</code> if <span class="notranslate">Crashlytics</span> cannot resolve the app ID generated by the Google Play services plugin, rather than failing silently when attempting to upload mapping and symbol files. The exception message includes information on possible solutions.</p></li> <li><p><span class="release-fixed"></span> Fixed the <code translate="no" dir="ltr">UP-TO-DATE</code> check for the mapping file ID injection task. The task will now be correctly marked <code translate="no" dir="ltr">UP-TO-DATE</code> if the mapping file ID is not modified.</p></li> <li><p><span class="release-removed"></span> Dropped support for Gradle v4.x and earlier. Customers still using Android Gradle plugin v3.3.2 should update to Gradle 5.0.</p></li> </ul> <h3 id="iid_v20-2-1" data-text="Firebase Instance ID version 20.2.1" tabindex="-1">Firebase Instance ID version 20.2.1</h3> <ul> <li><span class="release-fixed"></span> Removed calls to <code translate="no" dir="ltr">getResourceAsStream</code> because it was causing a performance bottleneck. (<a href="//github.com/firebase/firebase-android-sdk/issues/1601" class="external">GitHub Issue #1601</a>)</li> </ul> <h3 id="realtime-database_v19-3-1" data-text="Realtime Database version 19.3.1" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.3.1</h3> <ul> <li><span class="release-changed"></span> Added internal HTTP header to the WebChannel connection.</li> </ul> <h4 id="realtime-database-ktx_v19-3-1" data-text="Realtime Database Kotlin extensions version 19.3.1" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v25-5-0" data-text="Firebase Android BoM version 25.5.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.5.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ktx:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-06-04" data-text="Update - June 04, 2020" tabindex="-1">Update - June 04, 2020</h2> <h3 id="analytics_v17-4-3" data-text="Analytics version 17.4.3" tabindex="-1"><span class="notranslate">Analytics</span> version 17.4.3</h3> <ul> <li><span class="release-changed"></span> This version supports using the Firebase SDK for Google Analytics in conjunction with the enhanced limits available in Google Analytics 360.</li> </ul> <h4 id="analytics-ktx_v17-4-3" data-text="Analytics Kotlin extensions version 17.4.3" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 17.4.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appdistro_gradle_plugin_v2-0-0" data-text="App Distribution Gradle plugin version 2.0.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 2.0.0</h3> <ul> <li><p><span class="release-changed"></span> The Gradle plugin no longer ships with bundled dependencies; instead, it uses transitive Maven dependencies. As a result, the OSS redistribution declaration in the Maven repo no longer applies and has been removed.</p></li> <li><p><span class="release-fixed"></span> Updated the upload URL for faster and more reliable uploads.</p></li> </ul> <h3 id="crashlytics_v17-0-1" data-text="Crashlytics version 17.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.0.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue causing a <code translate="no" dir="ltr">SQLiteException</code> when changing versions of <span class="notranslate">Crashlytics</span>. (<a href="https://github.com/firebase/firebase-android-sdk/issues/1531" class="external">Github Issue #1531</a>)</p></li> <li><p><span class="release-fixed"></span> Improved reliability of sending reports at crash time on Android API level 28+.</p></li> </ul> <h3 id="crashlytics-ndk_v17-0-1" data-text="Crashlytics NDK version 17.0.1" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.0.1</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.0.1.</li> </ul> <h3 id="installations_v16-3-2" data-text="Firebase installations version 16.3.2" tabindex="-1"><span class="notranslate">Firebase</span> installations version 16.3.2</h3> <ul> <li><span class="release-fixed"></span> Fixed a possible <code translate="no" dir="ltr">IllegalArgumentException</code> that occurred intermittently when Firebase services tried to refresh the auth tokens. (<a href="//github.com/firebase/firebase-android-sdk/issues/1540" class="external">GitHub Issue #1540</a>)</li> </ul> <h3 id="bom_v25-4-1" data-text="Firebase Android BoM version 25.4.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.4.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-05-21" data-text="Update - May 21, 2020" tabindex="-1">Update - May 21, 2020</h2> <h3 id="analytics_v17-4-2" data-text="Analytics version 17.4.2" tabindex="-1"><span class="notranslate">Analytics</span> version 17.4.2</h3> <ul> <li><span class="release-fixed"></span> Un-deprecated <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#VIEW_SEARCH_RESULTS"><code translate="no" dir="ltr">Event#VIEW_SEARCH_RESULTS</code></a>.</li> </ul> <h4 id="analytics-ktx_v17-4-2" data-text="Analytics Kotlin extensions version 17.4.2" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 17.4.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="crashlytics_gradle_plugin_v2-1-1" data-text="Crashlytics Gradle plugin version 2.1.1" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">NullPointerException</code> thrown when running <span class="notranslate">Crashlytics</span> native symbol upload tasks on native binaries compiled with unrecognized vendor-specific extensions. (<a href="//github.com/firebase/firebase-android-sdk/issues/1357" class="external">GitHub Issue #1357</a>)</li> </ul> <h3 id="messaging_v20-2-0" data-text="Cloud Messaging version 20.2.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.2.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases (for more information, refer to the <a href="/support/release-notes/android#messaging-directboot_v20-2-0"><span class="notranslate">Cloud Messaging</span> Direct Boot v20.2.0 release notes</a>).</li> </ul> <h3 id="messaging-directboot_v20-2-0" data-text="Cloud Messaging Direct Boot version 20.2.0" tabindex="-1">Cloud Messaging Direct Boot version 20.2.0</h3> <ul> <li><span class="release-feature"></span> The Firebase Cloud Messaging Direct Boot SDK is now available and supports receiving FCM messages in Direct Boot mode. See <a href="/docs/cloud-messaging/android/receive#receive_fcm_messages_in_direct_boot_mode">Receive FCM messages in direct boot mode</a> for more information.</li> </ul> <h3 id="inappmessaging_v19-0-7" data-text="In-App Messaging version 19.0.7" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.0.7</h3> <ul> <li><p><span class="release-fixed"></span> Improved handling of activity transitions. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/1410">Issue #1410</a> and <a href="//github.com/firebase/firebase-android-sdk/issues/1092">Issue #1092</a>)</p></li> <li><p><span class="release-changed"></span> Migrated to use the <span class="notranslate">Firebase</span> installations service <em>directly</em> instead of using an indirect dependency via the Firebase Instance ID SDK.</p> <aside class="note">When using this library, if you are <em>explicitly</em> calling <a href="/docs/reference/android/com/google/firebase/iid/package-summary">Instance ID APIs</a> and relying on an indirect dependency for the Instance ID SDK, you can do either of the following: <ul> <li>Update your application to add a <strong>direct</strong> dependency on the Instance ID SDK.</li> <li>Use the new <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations SDK</a> to access client identifiers, which include <span class="notranslate">Firebase</span> installation IDs or installation auth tokens.</li> </ul> </aside></li> </ul> <h4 id="inappmessaging-ktx_v19-0-7" data-text="In-App Messaging Kotlin extensions version 19.0.7" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.0.7</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-0-7" data-text="In-App Messaging Display version 19.0.7" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.0.7</h3> <ul> <li><p><span class="release-fixed"></span> Improved handling of activity transitions. (GitHub <a href="//github.com/firebase/firebase-android-sdk/issues/1410">Issue #1410</a> and <a href="//github.com/firebase/firebase-android-sdk/issues/1092">Issue #1092</a>)</p></li> <li><p><span class="release-changed"></span> Migrated to use the <span class="notranslate">Firebase</span> installations service <em>directly</em> instead of using an indirect dependency via the Firebase Instance ID SDK.</p> <aside class="note">When using this library, if you are <em>explicitly</em> calling <a href="/docs/reference/android/com/google/firebase/iid/package-summary">Instance ID APIs</a> and relying on an indirect dependency for the Instance ID SDK, you can do either of the following: <ul> <li>Update your application to add a <strong>direct</strong> dependency on the Instance ID SDK.</li> <li>Use the new <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations SDK</a> to access client identifiers, which include <span class="notranslate">Firebase</span> installation IDs or installation auth tokens.</li> </ul> </aside></li> </ul> <h4 id="inappmessaging-display-ktx_v19-0-7" data-text="In-App Messaging Display Kotlin extensions version 19.0.7" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.0.7</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v16-3-1" data-text="Firebase installations version 16.3.1" tabindex="-1"><span class="notranslate">Firebase</span> installations version 16.3.1</h3> <ul> <li><p><span class="release-changed"></span> In error logging for the <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations service</a>, added details for the Firebase options such as API key, Firebase project ID, and application ID passed in FIS API calls.</p></li> <li><p><span class="release-fixed"></span> Fixed a possible <code translate="no" dir="ltr">OverlappingFileLockException</code> and <code translate="no" dir="ltr">IOException due to Bad file descriptor</code> when multiple Firebase services required a <span class="notranslate">Firebase</span> installation ID (FID) in parallel. The issue occurs primarily on Android 7 and 8 devices. (<a href="//github.com/firebase/firebase-android-sdk/issues/1519" class="external">GitHub Issue #1519</a>)</p></li> </ul> <h3 id="iid_v20-2-0" data-text="Firebase Instance ID version 20.2.0" tabindex="-1">Firebase Instance ID version 20.2.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases (for more information, refer to the <a href="/support/release-notes/android#messaging-directboot_v20-2-0"><span class="notranslate">Cloud Messaging</span> Direct Boot v20.2.0 release notes</a>).</li> </ul> <h3 id="bom_v25-4-0" data-text="Firebase Android BoM version 25.4.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.4.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging-directboot:20.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-05-07" data-text="Update - May 07, 2020" tabindex="-1">Update - May 07, 2020</h2> <h3 id="analytics_v17-4-1" data-text="Analytics version 17.4.1" tabindex="-1"><span class="notranslate">Analytics</span> version 17.4.1</h3> <ul> <li><span class="release-fixed"></span> Un-deprecated <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#SELECT_CONTENT"><code translate="no" dir="ltr">Event#SELECT_CONTENT</code></a>.</li> </ul> <h4 id="analytics-ktx_v17-4-1" data-text="Analytics Kotlin extensions version 17.4.1" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 17.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="appdistro_gradle_plugin_v1-4-1" data-text="App Distribution Gradle plugin version 1.4.1" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 1.4.1</h3> <ul> <li><span class="release-fixed"></span> Running <code translate="no" dir="ltr">appDistributionUpload{Variant}</code> no longer automatically rebuilds the app.</li> <li><span class="release-fixed"></span> Fixed an issue where authenticating via the environment variable <code translate="no" dir="ltr">GOOGLE_APPLICATION_CREDENTIALS</code> would cache old credentials, resulting in 403 errors.</li> </ul> <h3 id="messaging_v20-1-7" data-text="Cloud Messaging version 20.1.7" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.1.7</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases (for more information, refer to the <a href="/support/release-notes/android#iid_v20-1-7">Firebase Instance ID v20.1.7 release notes</a>).</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-1-0" data-text="Crashlytics Gradle plugin version 2.1.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.1.0</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">NullPointerException</code> thrown when running <span class="notranslate">Crashlytics</span> native symbol upload tasks on some native binaries. (<a href="//github.com/firebase/firebase-android-sdk/issues/1396" class="external">GitHub Issue #1396</a>)</p></li> <li><p><span class="release-changed"></span> The <span class="notranslate">Crashlytics</span> build tools and Gradle plugin no longer ship with bundled dependencies; instead, they use transitive Maven dependencies. As a result, the OSS redistribution declaration in the Maven repo no longer applies and has been removed.</p></li> </ul> <h3 id="installations_v16-3-0" data-text="Firebase installations version 16.3.0" tabindex="-1"><span class="notranslate">Firebase</span> installations version 16.3.0</h3> <ul> <li><span class="release-changed"></span> Improved the detection of invalid <code translate="no" dir="ltr">FirebaseOptions</code> values. During initialization of Firebase, your application must provide valid values for the following Firebase options: <code translate="no" dir="ltr">API key</code>, <code translate="no" dir="ltr">Firebase project ID</code>, and <code translate="no" dir="ltr">application ID</code>. If any required value is missing or if a provided value is invalid, <code translate="no" dir="ltr">FirebaseInstallations</code> throws an <code translate="no" dir="ltr">IllegalArgumentException</code>. For more details, visit <a href="/support/privacy/init-options">Troubleshoot initialization options</a>.</li> </ul> <h3 id="iid_v20-1-7" data-text="Firebase Instance ID version 20.1.7" tabindex="-1">Firebase Instance ID version 20.1.7</h3> <ul> <li><span class="release-changed"></span> Further improved the detection of invalid <code translate="no" dir="ltr">FirebaseOptions</code> values. During initialization of Firebase, your application must provide valid values for the following Firebase options: <code translate="no" dir="ltr">API key</code>, <code translate="no" dir="ltr">Firebase project ID</code>, and <code translate="no" dir="ltr">application ID</code>. If any required value is missing or if a provided value is invalid, <code translate="no" dir="ltr">FirebaseInstanceId</code> throws an <code translate="no" dir="ltr">IllegalArgumentException</code>. For more details, visit <a href="/support/privacy/init-options">Troubleshoot initialization options</a>.</li> </ul> <h3 id="bom_v25-3-1" data-text="Firebase Android BoM version 25.3.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.3.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-04-23" data-text="Update - April 23, 2020" tabindex="-1">Update - April 23, 2020</h2> <aside class="caution"> <p>The following Firebase Android SDKs now <em>transitively</em> depend on the <span class="notranslate">Firebase</span> installations SDK, which is a step towards a <em>direct</em> dependency on this SDK in a future release. Learn about possible impacts in the <a href="/support/release-notes/android#2020-02-27">February 27, 2020 release notes</a>. </p> <table class="columns"> <tr> <td width="20%"> <ul> <li><span class="notranslate">Analytics</span></li> </ul> </td> <td width="20%"> <ul> <li>ML Kit for Firebase</li> </ul> </td> <td width="35%"> <ul> <li><span class="notranslate">Performance Monitoring</span></li> </ul> </td> <td> <ul> <li><span class="notranslate">Remote Config</span></li> </ul> </td> </tr> </table> <p>The following Firebase Android SDKs already had a transitive dependency on the <span class="notranslate">Firebase</span> installations SDK since <a href="/support/release-notes/android#2020-02-27">February 27, 2020</a>: <br> Firebase Instance ID and <span class="notranslate">Firebase Cloud Messaging</span> </p> </aside> <h3 id="analytics_v17-4-0" data-text="Analytics version 17.4.0" tabindex="-1"><span class="notranslate">Analytics</span> version 17.4.0</h3> <ul> <li><p><span class="release-deprecated"></span> Deprecated <a href="//android-developers.googleblog.com/2019/11/still-using-installbroadcast-switch-to.html">Install Referrer Broadcast</a> Receiver.</p></li> <li><p><span class="release-fixed"></span> Fixed first open attribution when <span class="notranslate">Analytics</span> is disabled by default.</p></li> <li><p><span class="release-fixed"></span> Fixed engagement measurement when a worker thread is delayed.</p></li> <li><p><span class="release-fixed"></span> Resolved an issue that prevented <span class="notranslate">Firebase Dynamic Links</span> to log <code translate="no" dir="ltr">app_open</code>.</p></li> <li><p><span class="release-changed"></span> Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step towards a direct dependency on the <span class="notranslate">Firebase</span> installations service in a future release.</p></li> </ul> <h4 id="analytics-ktx_v17-4-0" data-text="Analytics Kotlin extensions version 17.4.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 17.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-analytics</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="auth_v19-3-1" data-text="Authentication version 19.3.1" tabindex="-1"><span class="notranslate">Authentication</span> version 19.3.1</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate">Firebase Authentication</span> Kotlin extensions library.</li> </ul> <h4 id="auth-ktx_v19-3-1" data-text="Authentication Kotlin extensions version 19.3.1" tabindex="-1"><span class="notranslate">Authentication</span> Kotlin extensions version 19.3.1</h4> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Firebase Authentication</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-auth</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/auth/ktx/package-summary"><span class="notranslate">Authentication</span> KTX documentation</a>.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-0-0" data-text="Crashlytics Gradle plugin version 2.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.0.0</h3> <ul> <li><span class="release-changed"></span> The <span class="notranslate">Firebase Crashlytics</span> Gradle plugin is now generally available.</li> </ul> <h3 id="crashlytics_v17-0-0" data-text="Crashlytics version 17.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.0.0</h3> <ul> <li><p><span class="release-changed"></span> The <span class="notranslate">Firebase Crashlytics</span> SDK is now generally available.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue that could cause apps to crash if a crash report payload is too large (rare).</p></li> <li><p><span class="release-changed"></span> Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step towards a direct dependency on the <span class="notranslate">Firebase</span> installations service in a future release.</p></li> </ul> <h3 id="crashlytics-ndk_v17-0-0" data-text="Crashlytics NDK version 17.0.0" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.0.0</h3> <ul> <li><p><span class="release-changed"></span> The <span class="notranslate">Firebase Crashlytics</span> SDK for NDK is now generally available.</p></li> <li><p><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.0.0.</p></li> </ul> <h3 id="firestore_v21-4-3" data-text="Cloud Firestore version 21.4.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.4.3</h3> <ul> <li><span class="release-changed"></span> <span class="notranslate">Cloud Firestore</span> now limits the number of concurrent document lookups it will perform when resolving inconsistencies in the local cache.</li> </ul> <h4 id="firestore-ktx_v21-4-3" data-text="Cloud Firestore Kotlin extensions version 21.4.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.4.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v20-1-6" data-text="Cloud Messaging version 20.1.6" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.1.6</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug in topic syncing that was causing increased usage of shared system resources when waiting for a working network connection.</li> </ul> <h3 id="inappmessaging_v19-0-6" data-text="In-App Messaging version 19.0.6" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.0.6</h3> <ul> <li><span class="release-fixed"></span> Fixed issue causing apps to become unresponsive in limited network conditions. <a href="//github.com/firebase/firebase-android-sdk/issues/1430">GitHub Issue #1430</a></li> </ul> <h4 id="inappmessaging-ktx_v19-0-6" data-text="In-App Messaging Kotlin extensions version 19.0.6" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.0.6</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-0-6" data-text="In-App Messaging Display version 19.0.6" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.0.6</h3> <ul> <li><span class="release-fixed"></span> Fixed issue causing apps to become unresponsive in limited network conditions. <a href="//github.com/firebase/firebase-android-sdk/issues/1430">GitHub Issue #1430</a></li> </ul> <h4 id="inappmessaging-display-ktx_v19-0-6" data-text="In-App Messaging Display Kotlin extensions version 19.0.6" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.0.6</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v16-2-2" data-text="Firebase installations version 16.2.2" tabindex="-1"><span class="notranslate">Firebase</span> installations version 16.2.2</h3> <ul> <li><span class="release-changed"></span> Added descriptive error logs with the response code and error message received when communicating with the <a href="/docs/projects/manage-installations"><span class="notranslate">Firebase</span> installations service</a>.</li> </ul> <h3 id="iid_v20-1-6" data-text="Firebase Instance ID version 20.1.6" tabindex="-1">Firebase Instance ID version 20.1.6</h3> <ul> <li><span class="release-changed"></span> Improved detection of invalid <code translate="no" dir="ltr">FirebaseOptions</code> values. During initialization of Firebase, your application must provide valid values for the following Firebase options: <code translate="no" dir="ltr">API key</code>, <code translate="no" dir="ltr">Firebase project ID</code>, and <code translate="no" dir="ltr">application ID</code>. If any required value is missing, FirebaseInstanceId will throw an <code translate="no" dir="ltr">IllegalArgumentException</code>.</li> </ul> <h3 id="mlkit-common_v22-1-1" data-text="ML Kit for Firebase Common version 22.1.1" tabindex="-1">ML Kit for Firebase Common version 22.1.1</h3> <ul> <li><span class="release-changed"></span> Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step towards a direct dependency on the <span class="notranslate">Firebase</span> installations service in a future release.</li> </ul> <h3 id="mlkit-model-interpreter_v22-0-3" data-text="ML Kit for Firebase Model Interpreter version 22.0.3" tabindex="-1">ML Kit for Firebase Model Interpreter version 22.0.3</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision_v24-0-3" data-text="ML Kit for Firebase Vision version 24.0.3" tabindex="-1">ML Kit for Firebase Vision version 24.0.3</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision-automl_v18-0-5" data-text="ML Kit for Firebase Vision AutoML version 18.0.5" tabindex="-1">ML Kit for Firebase Vision AutoML version 18.0.5</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision-barcode-model_v16-1-1" data-text="ML Kit for Firebase Barcode Model version 16.1.1" tabindex="-1">ML Kit for Firebase Barcode Model version 16.1.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-obj-detection-tracking-model_v19-0-5" data-text="ML Kit for Firebase Object Detection and Tracking Model version 19.0.5" tabindex="-1">ML Kit for Firebase Object Detection and Tracking Model version 19.0.5</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="performance_v19-0-7" data-text="Performance Monitoring version 19.0.7" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.7</h3> <ul> <li><p><span class="release-changed"></span> Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step towards a direct dependency on the <span class="notranslate">Firebase</span> installations service in a future release.</p> <p>This update to <code translate="no" dir="ltr">firebase-iid</code> v20.1.5 fixed the following GitHub issues: <a href="//github.com/firebase/firebase-android-sdk/issues/1454">#1454</a>, <a href="//github.com/firebase/firebase-android-sdk/issues/1397">#1397</a>, and <a href="//github.com/firebase/firebase-android-sdk/issues/1339">#1339</a>.</p></li> </ul> <h3 id="realtime-database_v19-3-0" data-text="Realtime Database version 19.3.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.3.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/database/ServerValue#increment(double)"><code translate="no" dir="ltr">ServerValue.increment()</code></a> to support atomic field value increments without transactions.</li> </ul> <h4 id="realtime-database-ktx_v19-3-0" data-text="Realtime Database Kotlin extensions version 19.3.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v19-1-4" data-text="Remote Config version 19.1.4" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.1.4</h3> <ul> <li><span class="release-changed"></span> Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step towards a direct dependency on the Firebase installations service in a future release.</li> </ul> <h4 id="remote-config-ktx_v19-1-4" data-text="Remote Config Kotlin extensions version 19.1.4" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.1.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v25-3-0" data-text="Firebase Android BoM version 25.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth-ktx:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-04-09" data-text="Update - April 09, 2020" tabindex="-1">Update - April 09, 2020</h2> <h3 id="appdistro_gradle_plugin_v1-4-0" data-text="App Distribution Gradle plugin version 1.4.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 1.4.0</h3> <ul> <li><span class="release-fixed"></span> Updated Android Gradle Plugin API usage to fix APK locating bug that happens when using Android Gradle Plugin v4.0.x.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-0-0-beta04" data-text="Crashlytics Gradle plugin version 2.0.0-beta04" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.0.0-beta04</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue involving the v4.1 alpha release of the Android Gradle Plugin. This fix resolves the build error that contains the following exception:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="GDScript"><code translate="no" dir="ltr"><span class="devsite-syntax-n">groovy</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">lang</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">MissingPropertyException</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">No</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">such</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">property</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">scope</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">for</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">class</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">com</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">android</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">build</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">gradle</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">internal</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">variant</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ApplicationVariantData</span> </code></pre></devsite-code> <p><strong>Note:</strong> The <span class="notranslate">Firebase Crashlytics</span> <code translate="no" dir="ltr">mappingFile</code> parameter is incompatible with the Android Gradle Plugin v4.1+ and will be removed in future versions of the <span class="notranslate">Firebase Crashlytics</span> Gradle plugin.</p></li> <li><p><span class="release-changed"></span> Improved the messaging for the error that occurs when applying the plugin to a library variant.</p></li> </ul> <h3 id="crashlytics_v17-0-0-beta04" data-text="Crashlytics version 17.0.0-beta04" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.0.0-beta04</h3> <ul> <li><p><span class="release-changed"></span> Imposed a limit on the maximum crash report payload size.</p></li> <li><p><span class="release-fixed"></span> Reduced crash report payload size.</p></li> </ul> <h3 id="crashlytics-ndk_v17-0-0-beta04" data-text="Crashlytics NDK version 17.0.0-beta04" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.0.0-beta04</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">firebase-crashlytics</code> dependency to v17.0.0-beta-04.</li> </ul> <h3 id="inappmessaging_v19-0-5" data-text="In-App Messaging version 19.0.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.0.5</h3> <ul> <li><span class="release-fixed"></span> Fixed issue where campaigns with frequency limits were not properly displaying multiple times.</li> </ul> <h4 id="inappmessaging-ktx_v19-0-5" data-text="In-App Messaging Kotlin extensions version 19.0.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.0.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-0-5" data-text="In-App Messaging Display version 19.0.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.0.5</h3> <ul> <li><span class="release-fixed"></span> Fixed issue where campaigns with frequency limits were not properly displaying multiple times.</li> </ul> <h4 id="inappmessaging-display-ktx_v19-0-5" data-text="In-App Messaging Display Kotlin extensions version 19.0.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.0.5</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="mlkit-common_v22-1-0" data-text="ML Kit for Firebase Common version 22.1.0" tabindex="-1">ML Kit for Firebase Common version 22.1.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager"><code translate="no" dir="ltr">FirebaseModelManager.getLatestModelFile</code></a> which enables access to the latest downloaded custom model file.</li> </ul> <h3 id="mlkit-model-interpreter_v22-0-2" data-text="ML Kit for Firebase Model Interpreter version 22.0.2" tabindex="-1">ML Kit for Firebase Model Interpreter version 22.0.2</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-translate-model_v20-0-8" data-text="ML Kit for Firebase Translate Model version 20.0.8" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.8</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision_v24-0-2" data-text="ML Kit for Firebase Vision version 24.0.2" tabindex="-1">ML Kit for Firebase Vision version 24.0.2</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision-automl_v18-0-4" data-text="ML Kit for Firebase Vision AutoML version 18.0.4" tabindex="-1">ML Kit for Firebase Vision AutoML version 18.0.4</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision-barcode-model_v16-1-0" data-text="ML Kit for Firebase Barcode Model version 16.1.0" tabindex="-1">ML Kit for Firebase Barcode Model version 16.1.0</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-obj-detection-tracking-model_v19-0-4" data-text="ML Kit for Firebase Object Detection and Tracking Model version 19.0.4" tabindex="-1">ML Kit for Firebase Object Detection and Tracking Model version 19.0.4</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="performance_v19-0-6" data-text="Performance Monitoring version 19.0.6" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.6</h3> <ul> <li><span class="release-fixed"></span> Fixed an NPE crash when calling <code translate="no" dir="ltr">trace.stop()</code>. (<a href="//github.com/firebase/firebase-android-sdk/issues/1383" class="external">GitHub Issue #1383</a>)</li> </ul> <h3 id="bom_v25-2-2" data-text="Firebase Android BoM version 25.2.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.2.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta04</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta04</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta04</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta04</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-04-03" data-text="Update - April 03, 2020" tabindex="-1">Update - April 03, 2020</h2> <h3 id="messaging_v20-1-5" data-text="Cloud Messaging version 20.1.5" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.1.5</h3> <aside class="warning"><strong>Warning:</strong><span> In some cases, <code translate="no" dir="ltr">firebase-messaging</code> v20.1.4 and v20.1.5 are erroneously consuming system resources which can negatively impact the performance of a user&#39;s device. To avoid this effect, <strong>update your app&#39;s version of <code translate="no" dir="ltr">firebase-messaging</code> to <a href="/support/release-notes/android#messaging_v20-1-6">v20.1.6</a> or later</strong>.</span></aside> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="installations_v16-1-0" data-text="Firebase Installations version 16.1.0" tabindex="-1">Firebase Installations version 16.1.0</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">NoSuchMethodError:IncompatibleIidVersionDetector</code> lint check that failed for builds using AGP 3.6+. (<a href="//github.com/firebase/firebase-android-sdk/issues/1407" class="external">Issue #1407</a>)</li> </ul> <h3 id="iid_v20-1-5" data-text="Firebase Instance ID version 20.1.5" tabindex="-1">Firebase Instance ID version 20.1.5</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="bom_v25-2-1" data-text="Firebase Android BoM version 25.2.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.2.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-03-30" data-text="Update - March 30, 2020" tabindex="-1">Update - March 30, 2020</h2> <h3 id="analytics_v17-3-0" data-text="Analytics version 17.3.0" tabindex="-1"><span class="notranslate">Analytics</span> version 17.3.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for Ecommerce</p> <ul> <li><p>The following ecommerce events are added to <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event"><code translate="no" dir="ltr">FirebaseAnalytics.Event</code></a>:</p> <p><a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#ADD_SHIPPING_INFO"><code translate="no" dir="ltr">Event#ADD_SHIPPING_INFO</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#PURCHASE"><code translate="no" dir="ltr">Event#PURCHASE</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#REFUND"><code translate="no" dir="ltr">Event#REFUND</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#SELECT_ITEM"><code translate="no" dir="ltr">Event#SELECT_ITEM</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#SELECT_PROMOTION"><code translate="no" dir="ltr">Event#SELECT_PROMOTION</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#VIEW_CART"><code translate="no" dir="ltr">Event#VIEW_CART</code></a>, and <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#VIEW_PROMOTION"><code translate="no" dir="ltr">Event#VIEW_PROMOTION</code></a></p></li> <li><p>The following ecommerce parameters are added to <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param"><code translate="no" dir="ltr">FirebaseAnalytics.Param</code></a>:</p> <p><a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEMS"><code translate="no" dir="ltr">Param#ITEMS</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#DISCOUNT"><code translate="no" dir="ltr">Param#DISCOUNT</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_CATEGORY2"><code translate="no" dir="ltr">Param#ITEM_CATEGORY2</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_CATEGORY3"><code translate="no" dir="ltr">Param#ITEM_CATEGORY3</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_CATEGORY4"><code translate="no" dir="ltr">Param#ITEM_CATEGORY4</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_CATEGORY5"><code translate="no" dir="ltr">Param#ITEM_CATEGORY5</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_LIST_ID"><code translate="no" dir="ltr">Param#ITEM_LIST_ID</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_LIST_NAME"><code translate="no" dir="ltr">Param#ITEM_LIST_NAME</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#LOCATION_ID"><code translate="no" dir="ltr">Param#LOCATION_ID</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#PAYMENT_TYPE"><code translate="no" dir="ltr">Param#PAYMENT_TYPE</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#PROMOTION_ID"><code translate="no" dir="ltr">Param#PROMOTION_ID</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#PROMOTION_NAME"><code translate="no" dir="ltr">Param#PROMOTION_NAME</code></a>, and <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#SHIPPING_TIER"><code translate="no" dir="ltr">Param#SHIPPING_TIER</code></a></p></li> </ul> <aside class="caution"><p>The API changes included with this release support Ecommerce functionality that will be made available in Google Analytics in the coming weeks. Check back here for updates.</p> <p>The <a href="//support.google.com/firebase/answer/7029846">BigQuery export schema</a> also changed with this release. If you rely on product data, check the schema changes before updating your SDK to v17.3.0.</p></aside></li> <li><p><span class="release-deprecated"></span> The following <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event">Events</a> are deprecated:</p> <ul> <li><p><a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#ECOMMERCE_PURCHASE"><code translate="no" dir="ltr">Event#ECOMMERCE_PURCHASE</code></a> is deprecated. Instead, use <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#PURCHASE"><code translate="no" dir="ltr">Event#PURCHASE</code></a>.</p></li> <li><p><a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#PURCHASE_REFUND"><code translate="no" dir="ltr">Event#PURCHASE_REFUND</code></a> is deprecated. Instead, use <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#REFUND"><code translate="no" dir="ltr">Event#REFUND</code></a>.</p></li> <li><p><a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#PRESENT_OFFER"><code translate="no" dir="ltr">Event#PRESENT_OFFER</code></a> is deprecated. Instead, use <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#VIEW_PROMOTION"><code translate="no" dir="ltr">Event#VIEW_PROMOTION</code></a>.</p></li> <li><p><a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#SELECT_CONTENT"><code translate="no" dir="ltr">Event#SELECT_CONTENT</code></a> is deprecated. Instead, use <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#SELECT_ITEM"><code translate="no" dir="ltr">Event#SELECT_ITEM</code></a>.</p></li> <li><p>The following events are deprecated with no replacement: <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#SET_CHECKOUT_OPTION"><code translate="no" dir="ltr">Event#SET_CHECKOUT_OPTION</code></a>, <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#CHECKOUT_PROGRESS"><code translate="no" dir="ltr">Event#CHECKOUT_PROGRESS</code></a>, and <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#VIEW_SEARCH_RESULTS"><code translate="no" dir="ltr">Event#VIEW_SEARCH_RESULTS</code></a></p></li> </ul></li> <li><p><span class="release-deprecated"></span> The following <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param">Parameters</a> are deprecated:</p> <ul> <li><p><a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_LOCATION_ID"><code translate="no" dir="ltr">Param#ITEM_LOCATION_ID</code></a> is deprecated. Instead, use <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#LOCATION_ID"><code translate="no" dir="ltr">Param#LOCATION_ID</code></a>.</p></li> <li><p><a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_LIST"><code translate="no" dir="ltr">Param#ITEM_LIST</code></a> is deprecated. Instead, use <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#ITEM_LIST_NAME"><code translate="no" dir="ltr">Param#ITEM_LIST_NAME</code></a>.</p></li> <li><p>The following parameters are deprecated with no replacement: <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#CHECKOUT_STEP"><code translate="no" dir="ltr">Param#CHECKOUT_STEP</code></a> and <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param#CHECKOUT_OPTION"><code translate="no" dir="ltr">Param#CHECKOUT_OPTION</code></a></p></li> </ul></li> </ul> <h4 id="analytics-ktx_v17-3-0" data-text="Analytics Kotlin extensions version 17.3.0" tabindex="-1"><span class="notranslate">Analytics</span> Kotlin extensions version 17.3.0</h4> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Analytics</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-analytics</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/analytics/ktx/package-summary"><span class="notranslate">Analytics</span> KTX documentation</a>.</li> </ul> <h3 id="firestore_v21-4-2" data-text="Cloud Firestore version 21.4.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.4.2</h3> <ul> <li><span class="release-changed"></span> Removed Guava dependency from the SDK. This change is the first step in eliminating crashes caused by apps that depend on the wrong flavor of Guava. (<a href="//github.com/firebase/firebase-android-sdk/issues/1125">Issue #1125</a>)</li> </ul> <h4 id="firestore-ktx_v21-4-2" data-text="Cloud Firestore Kotlin extensions version 21.4.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.4.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v20-1-4" data-text="Cloud Messaging version 20.1.4" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.1.4</h3> <aside class="warning"><strong>Warning:</strong><span> In some cases, <code translate="no" dir="ltr">firebase-messaging</code> v20.1.4 and v20.1.5 are erroneously consuming system resources which can negatively impact the performance of a user&#39;s device. To avoid this effect, <strong>update your app&#39;s version of <code translate="no" dir="ltr">firebase-messaging</code> to <a href="/support/release-notes/android#messaging_v20-1-6">v20.1.6</a> or later</strong>.</span></aside> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="crashlytics_v17-0-0-beta03" data-text="Crashlytics version 17.0.0-beta03" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.0.0-beta03</h3> <ul> <li><p><span class="release-fixed"></span> Fixed internal bugs to improve crash analysis and grouping.</p></li> <li><p><span class="release-changed"></span> Improved compatibility with Google Analytics. For best performance, make sure you&#39;re using the latest versions of the <span class="notranslate">Firebase Crashlytics</span> SDK and the Firebase SDK for Google Analytics.</p></li> <li><p><span class="release-changed"></span> Updated remaining <span class="notranslate">Crashlytics</span> backend API calls to prepare for Fabric sunset.</p></li> </ul> <h3 id="crashlytics-ndk_v17-0-0-beta03" data-text="Crashlytics NDK version 17.0.0-beta03" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.0.0-beta03</h3> <ul> <li><p><span class="release-fixed"></span> Updated package name in <code translate="no" dir="ltr">AndroidManifest.xml</code> to reflect new <span class="notranslate">Firebase Crashlytics</span> NDK package name.</p></li> <li><p><span class="release-changed"></span> Improved debug logging.</p></li> <li><p><span class="release-changed"></span> Released new <code translate="no" dir="ltr">crashlytics.h</code> with updated C++ APIs.</p></li> <li><p><span class="release-changed"></span> Added ProGuard rules files to avoid obfuscating public APIs called from C++.</p></li> </ul> <h3 id="installations_v16-2-0" data-text="Firebase Installations version 16.2.0" tabindex="-1">Firebase Installations version 16.2.0</h3> <ul> <li><p><span class="release-fixed"></span> Fixed a possible <code translate="no" dir="ltr">IllegalStateException</code> when multiple Firebase services required a Firebase client identifier (FID) in parallel. The issue was not reproducible in local testing and affected a small number of users (that is, &lt;1%). (<a href="//github.com/firebase/firebase-android-sdk/issues/1339" class="external">Issue #1339</a>)</p></li> <li><p><span class="release-changed"></span> Added a lint check to the compile process that prevents parallel usage of <span class="notranslate">Firebase</span> installations and incompatible versions of the Firebase Instance ID SDK that are older than <code translate="no" dir="ltr">firebase-iid:20.1.0</code>. <span class="notranslate">Firebase</span> installations creates FIDs as Firebase client identifiers. Versions of the Firebase Instance ID SDK before <code translate="no" dir="ltr">v20.1.0</code> created different Firebase client identifiers: Instance IDs. This check prevents problems for Firebase targeting that might be caused by conflicting Firebase client identifiers.</p></li> </ul> <h3 id="iid_v20-1-3" data-text="Firebase Instance ID version 20.1.3" tabindex="-1">Firebase Instance ID version 20.1.3</h3> <ul> <li><p><span class="release-fixed"></span> Tokens are now scoped to their respective <code translate="no" dir="ltr">FirebaseApp</code> instance. Apps that instantiate multiple <code translate="no" dir="ltr">FirebaseApp</code> instances will now see a different token for each app.</p></li> <li><p><span class="release-changed"></span> <code translate="no" dir="ltr">FirebaseApp</code> now requires a non-empty project ID set in the corresponding <code translate="no" dir="ltr">FirebaseOptions</code>.</p></li> </ul> <h3 id="bom_v25-2-0" data-text="Firebase Android BoM version 25.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-03-17" data-text="Update - March 17, 2020" tabindex="-1">Update - March 17, 2020</h2> <h3 id="messaging_v20-1-3" data-text="Cloud Messaging version 20.1.3" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.1.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="crashlytics_v17-0-0-beta02" data-text="Crashlytics version 17.0.0-beta02" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.0.0-beta02</h3> <ul> <li><p><span class="release-changed"></span> Removed superfluous <code translate="no" dir="ltr">D/FirebaseCrashlytics</code> prefix from logs. (<a href="https://github.com/firebase/firebase-android-sdk/issues/1202">#1202</a>)</p></li> <li><p><span class="release-changed"></span> Updated <span class="notranslate">Crashlytics</span> backend API calls in preparation for Fabric sunset.</p></li> <li><p><span class="release-changed"></span> Upgraded <span class="notranslate">Google Analytics</span> integration to improve crash-free users accuracy. For improved performance, we recommend that you upgrade to the latest version of the Firebase SDK for <span class="notranslate">Google Analytics</span> with this version of <span class="notranslate">Firebase Crashlytics</span>.</p></li> </ul> <h3 id="crashlytics_gradle_plugin_v2-0-0-beta03" data-text="Crashlytics Gradle plugin version 2.0.0-beta03" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.0.0-beta03</h3> <ul> <li><span class="release-changed"></span> Updated the Gradle plugin to use new <span class="notranslate">Crashlytics</span> backend endpoints when uploading deobfuscation files and NDK symbol information.</li> </ul> <h3 id="inappmessaging_v19-0-4" data-text="In-App Messaging version 19.0.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.0.4</h3> <ul> <li><p><span class="release-fixed"></span> Fixed issue with messages not being fetched on app first open.</p></li> <li><p><span class="release-fixed"></span> Fixed issue with first foreground trigger not being picked up.</p></li> <li><p><span class="release-changed"></span> Internal migration to use the <span class="notranslate">Firebase</span> installations service.</p></li> </ul> <h4 id="inappmessaging-ktx_v19-0-4" data-text="In-App Messaging Kotlin extensions version 19.0.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-0-4" data-text="In-App Messaging Display version 19.0.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.0.4</h3> <ul> <li><p><span class="release-fixed"></span> Fixed issue with messages not being fetched on app first open.</p></li> <li><p><span class="release-fixed"></span> Fixed issue with first foreground trigger not being picked up.</p></li> </ul> <h4 id="inappmessaging-display-ktx_v19-0-4" data-text="In-App Messaging Display Kotlin extensions version 19.0.4" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="installations_v16-1-0" data-text="Firebase Installations version 16.1.0" tabindex="-1">Firebase Installations version 16.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes for how the <span class="notranslate">Firebase</span> installations SDK migrates existing client identifiers (Instance IDs) to the new Firebase identity provider (<span class="notranslate">Firebase</span> installations). No developer action is necessary.</li> </ul> <h3 id="iid_v20-1-2" data-text="Firebase Instance ID version 20.1.2" tabindex="-1">Firebase Instance ID version 20.1.2</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="remote-config_v19-1-3" data-text="Remote Config version 19.1.3" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.1.3</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#fetch()"><code translate="no" dir="ltr">FirebaseRemoteConfig.fetch()</code></a> would sometimes report a misformatted language tag.</li> </ul> <h4 id="remote-config-ktx_v19-1-3" data-text="Remote Config Kotlin extensions version 19.1.3" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.1.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v25-1-1" data-text="Firebase Android BoM version 25.1.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.1.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta03</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-03-12" data-text="Update - March 12, 2020" tabindex="-1">Update - March 12, 2020</h2> <h3 id="auth_v19-3-0" data-text="Authentication version 19.3.0" tabindex="-1"><span class="notranslate">Authentication</span> version 19.3.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for Multi-Factor Authentication via phone SMS. To use this feature, you must use the <a href="https://cloud.google.com/identity-platform">Google Cloud Identity Platform</a>.</p></li> <li><p><span class="release-feature"></span> Added a new <a href="/docs/reference/android/com/google/firebase/auth/ActionCodeUrl"><code translate="no" dir="ltr">ActionCodeUrl</code></a> class that can be used to parse parameters in action code URLs from out-of-band email flows.</p></li> <li><p><span class="release-feature"></span> Added a new <a href="/docs/reference/android/com/google/firebase/auth/ActionCodeInfo"><code translate="no" dir="ltr">ActionCodeInfo</code></a> class that stores information related to out-of-band flows.</p></li> <li><p><span class="release-deprecated"></span> <a href="/support/release-notes/docs/reference/android/com/google/firebase/auth/ActionCodeResult#getData(int)"><code translate="no" dir="ltr">ActionCodeResult#getData(int)</code></a> is deprecated. Instead, use <a href="/support/release-notes/docs/reference/android/com/google/firebase/auth/ActionCodeResult#getInfo()"><code translate="no" dir="ltr">ActionCodeResult#getInfo()</code></a>.</p></li> </ul> <h3 id="bom_v25-1-0" data-text="Firebase Android BoM version 25.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-03-09" data-text="Update - March 09, 2020" tabindex="-1">Update - March 09, 2020</h2> <h3 id="general" data-text="General" tabindex="-1">General</h3> <ul> <li><span class="release-feature"></span> Kotlin extension (KTX) libraries for many Firebase Android SDKs are now out of beta! These KTX libraries enable you to access Firebase Android APIs using idiomatic Kotlin syntax. Learn more about these KTX libraries in the <a href="/docs/reference/kotlin/packages">Android -- Kotlin reference documentation</a>.</li> </ul> <h2 id="2020-03-03" data-text="Update - March 03, 2020" tabindex="-1">Update - March 03, 2020</h2> <h3 id="messaging_v20-1-2" data-text="Cloud Messaging version 20.1.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.1.2</h3> <p><strong>As of v20.1.1, the <span class="notranslate">Cloud Messaging</span> SDK depends on the <span class="notranslate">Firebase</span> installations SDK. Learn about possible impacts in the <a href="/support/release-notes/android#messaging_v20-1-1">v20.1.1 release notes</a>.</strong></p> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases (for more information, refer to the bug fix in the <a href="/support/release-notes/android#iid_v20-1-1">Firebase Instance ID v20.1.1 release notes</a>).</li> </ul> <h3 id="iid_v20-1-1" data-text="Firebase Instance ID version 20.1.1" tabindex="-1">Firebase Instance ID version 20.1.1</h3> <p><strong>As of v20.1.0, the Firebase Instance ID SDK depends on the <span class="notranslate">Firebase</span> installations SDK. Learn about possible impacts in the <a href="/support/release-notes/android#iid_v20-1-0">v20.1.0 release notes</a>.</strong></p> <ul> <li><p><span class="release-fixed"></span> Fixed a bug that was causing silent failures in apps that use the deprecated <code translate="no" dir="ltr">FirebaseInstanceId#getToken()</code> method without providing the required values for <code translate="no" dir="ltr">FirebaseOptions</code>: API key, Firebase project ID, and application ID. Now, if any required value is missing, it throws an <code translate="no" dir="ltr">IllegalArgumentException</code>.</p> <p>Note that we recommend <a href="/docs/cloud-messaging/android/client#sample-register">using the <code translate="no" dir="ltr">FirebaseInstanceId.getInstanceId().getToken()</code> method</a> instead of the deprecated <code translate="no" dir="ltr">FirebaseInstanceId.getInstance().getToken()</code> method.</p></li> </ul> <h3 id="bom_v25-0-0" data-text="Firebase Android BoM version 25.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 25.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-02-27" data-text="Update - February 27, 2020" tabindex="-1">Update - February 27, 2020</h2> <aside class="caution"> <p> The <span class="notranslate">Firebase Cloud Messaging</span> and Firebase Instance ID SDKs now transitively depend on the <span class="notranslate">Firebase</span> installations SDK. If you use <span class="notranslate">Cloud Messaging</span> and update your dependencies to their latest versions, make sure that push notifications still work as expected. </p> <strong>Be aware of the following when a Firebase library depends on the <span class="notranslate">Firebase</span> installations SDK:</strong> <ul> <li><p>Your app must provide valid values for the following: API key, Firebase project ID, and application ID.</p> <ul> <li>If you use programmatic initialization (that is, using a <code translate="no" dir="ltr">FirebaseOptions</code> object to provide these values), you can <a href="//support.google.com/firebase/answer/7015592" class="external">download your <code translate="no" dir="ltr">google-services.json</code> file</a> to find these values, then update your <code translate="no" dir="ltr">FirebaseOptions</code>, as needed. </li> <li>If you use the default initialization process (that is, using a <code translate="no" dir="ltr">google-services.json</code> config file to provide these values), you can <a href="//support.google.com/firebase/answer/7015592" class="external">download your <code translate="no" dir="ltr">google-services.json</code> file</a>, then <em>replace</em> the existing config file in your app. </li> </ul> </li> <li>Apps that use API key restrictions for their API key might <a href="//stackoverflow.com/questions/58495985/" class="external">experience blocked requests</a>. To mitigate this issue, review the <a href="//github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/API_KEY_RESTRICTIONS.md" class="external"><span class="notranslate">Firebase</span> installations documentation</a>. </li> <li>The <span class="notranslate">FCM</span> registration tokens of installed instances of your apps might change once after updating dependencies to their latest versions. To learn if your apps are affected, review the <a href="//github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/FCM_TOKENS_CHANGE.md" class="external"><span class="notranslate">Firebase</span> installations documentation</a>. Also, make sure to <a href="/docs/cloud-messaging/android/client#monitor-token-generation">monitor <span class="notranslate">FCM</span> registration token generation</a> using the <code translate="no" dir="ltr">#onNewToken</code> implementation. </li> </ul> </aside> <h3 id="analytics_v17-2-3" data-text="Analytics version 17.2.3" tabindex="-1"><span class="notranslate">Analytics</span> version 17.2.3</h3> <ul> <li><span class="release-fixed"></span> Bug fixes, including a fix for a concurrent modification exception.</li> </ul> <h3 id="firestore_v21-4-1" data-text="Cloud Firestore version 21.4.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.4.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a performance regression introduced by the addition of <code translate="no" dir="ltr">Query.limitToLast(n: long)</code> in <span class="notranslate">Cloud Firestore</span> v21.3.1.</li> <li><span class="release-changed"></span> Changed the in-memory representation of <span class="notranslate">Cloud Firestore</span> documents to reduce memory allocations and improve performance. Calls to <code translate="no" dir="ltr">DocumentSnapshot.getData()</code> and <code translate="no" dir="ltr">DocumentSnapshot.toObject()</code> will see the biggest improvement.</li> </ul> <h4 id="firestore-ktx_v21-4-1" data-text="Cloud Firestore Kotlin extensions version 21.4.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.4.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v20-1-1" data-text="Cloud Messaging version 20.1.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.1.1</h3> <aside class="warning"><strong>Warning:</strong><span> This version of <code translate="no" dir="ltr">firebase-messaging</code> (v20.1.1) has known issues involving silent failures and should not be used. A fix for these issues was released on <a href="/support/release-notes/android#2020-03-03">March 03, 2020</a>.</span></aside> <ul> <li><p><span class="release-changed"></span> Changed the default for notification titles. Previously, an empty title was replaced with the app&#39;s label, but now an empty title causes the notification title to be omitted.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue that could cause ANRs when receiving messages.</p></li> <li><p><span class="release-changed"></span> <span class="notranslate">Cloud Messaging</span> now transitively depends on the <span class="notranslate">Firebase</span> installations SDK. After updating to the latest dependency versions, make sure that push notifications still work as expected. Also, be aware of the following:</p> <ul> <li><p>The <span class="notranslate">FCM</span> registration tokens of installed instances of your apps might change once after updating dependencies to their latest versions. To learn if your apps are affected, review the <a href="//github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/FCM_TOKENS_CHANGE.md" class="external"><span class="notranslate">Firebase</span> installations documentation</a>. Also, make sure to <a href="/docs/cloud-messaging/android/client#monitor-token-generation">monitor <span class="notranslate">FCM</span> registration token generation</a> using the <code translate="no" dir="ltr">#onNewToken</code> implementation.</p></li> <li><p>Apps that use the Firebase auto-initialization process and the Gradle plugin to convert <code translate="no" dir="ltr">google-services.json</code> into resources are unaffected. However, apps that create their own <code translate="no" dir="ltr">FirebaseOptions</code> instances must provide a valid API key, Firebase project ID, and application ID.</p></li> </ul></li> </ul> <h3 id="installations_v16-0-0" data-text="Firebase Installations version 16.0.0" tabindex="-1">Firebase Installations version 16.0.0</h3> <ul> <li><p><span class="release-feature"></span> The <span class="notranslate">Firebase</span> installations SDK introduces the <span class="notranslate">Firebase</span> installations API. The <span class="notranslate">Firebase</span> installations service is an infrastructure service used internally by Firebase to identify each installed instance of a Firebase app.</p></li> <li><p><span class="release-changed"></span> Several Firebase products transitively depend on the <span class="notranslate">Firebase</span> installations SDK. Be aware of the following:</p> <ul> <li><p>The <span class="notranslate">FCM</span> registration tokens of installed instances of your apps might change once after updating dependencies to their latest versions. To learn if your apps are affected, review the <a href="//github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/FCM_TOKENS_CHANGE.md" class="external"><span class="notranslate">Firebase</span> installations documentation</a>. Also, make sure to <a href="/docs/cloud-messaging/android/client#monitor-token-generation">monitor <span class="notranslate">FCM</span> registration token generation</a> using the <code translate="no" dir="ltr">#onNewToken</code> implementation.</p></li> <li><p>Apps that use the Firebase auto-initialization process and the Gradle plugin to convert <code translate="no" dir="ltr">google-services.json</code> into resources are unaffected. However, apps that create their own <code translate="no" dir="ltr">FirebaseOptions</code> instances must provide a valid API key, Firebase project ID, and application ID.</p></li> <li><p>Apps that use API key restrictions for their API key might <a href="//stackoverflow.com/questions/58495985/">experience blocked requests</a>. To mitigate this issue, review the <a href="//github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/API_KEY_RESTRICTIONS.md" class="external"><span class="notranslate">Firebase</span> installations documentation</a>.</p></li> </ul></li> </ul> <h3 id="iid_v20-1-0" data-text="Firebase Instance ID version 20.1.0" tabindex="-1">Firebase Instance ID version 20.1.0</h3> <aside class="warning"><strong>Warning:</strong><span> This version of <code translate="no" dir="ltr">firebase-iid</code> (v20.1.0) has known issues involving silent failures and should not be used. A fix for these issues was released on <a href="/support/release-notes/android#2020-03-03">March 03, 2020</a>.</span></aside> <ul> <li><p><span class="release-fixed"></span> Fixed an issue that could cause ANRs when receiving broadcasts.</p></li> <li><p><span class="release-changed"></span> Firebase Instance ID now depends on the <span class="notranslate">Firebase</span> installations SDK. Be aware of the following:</p> <ul> <li><p>The <span class="notranslate">FCM</span> registration tokens of installed instances of your apps might change once after updating dependencies to their latest versions. To learn if your apps are affected, review the <a href="//github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/FCM_TOKENS_CHANGE.md" class="external"><span class="notranslate">Firebase</span> installations documentation</a>. Also, make sure to <a href="/docs/cloud-messaging/android/client#monitor-token-generation">monitor <span class="notranslate">FCM</span> registration token generation</a> using the <code translate="no" dir="ltr">#onNewToken</code> implementation.</p></li> <li><p>Apps that use the Firebase auto-initialization process and the Gradle plugin to convert <code translate="no" dir="ltr">google-services.json</code> into resources are unaffected. However, apps that create their own <code translate="no" dir="ltr">FirebaseOptions</code> instances must provide a valid API key, Firebase project ID, and application ID.</p></li> </ul></li> </ul> <h3 id="remote-config_v19-1-2" data-text="Remote Config version 19.1.2" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.1.2</h3> <ul> <li><span class="release-fixed"></span> Resolved known issue where <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder"><code translate="no" dir="ltr">FirebaseRemoteConfigSettings.Builder.setFetchTimeoutInSeconds()</code></a> was not always honored.</li> </ul> <h4 id="remote-config-ktx_v19-1-2" data-text="Remote Config Kotlin extensions version 19.1.2" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.1.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v24-7-1" data-text="Firebase Android BoM version 24.7.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.7.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-02-14" data-text="Update - February 14, 2020" tabindex="-1">Update - February 14, 2020</h2> <h3 id="dynamic-links_v19-1-0" data-text="Dynamic Links version 19.1.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 19.1.0</h3> <ul> <li><span class="release-feature"></span> Added new getter methods to <a href="//firebase.google.com/docs/reference/android/com/google/firebase/dynamiclinks/DynamicLink.Builder"><code translate="no" dir="ltr">DynamicLink.Builder</code></a> to improve Kotlin interop.</li> </ul> <h4 id="dynamic-links-ktx_19.1.0" data-text="Dynamic Links Kotlin extensions version 19.1.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> Kotlin extensions version 19.1.0</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate">Dynamic Links</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-dynamic-links</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/dynamiclinks/ktx/package-summary"><span class="notranslate">Dynamic Links</span> KTX documentation</a>.</li> </ul> <h3 id="bom_v24-7-0" data-text="Firebase Android BoM version 24.7.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.7.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta02</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-02-03" data-text="Update - February 03, 2020" tabindex="-1">Update - February 03, 2020</h2> <h3 id="crashlytics_gradle_plugin_v2-0-0-beta02" data-text="Crashlytics Gradle plugin version 2.0.0-beta02" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.0.0-beta02</h3> <ul> <li><span class="release-changed"></span> Updated the third-party license file to ensure compliance with all redistribution terms. For license declarations of all dependencies, refer to the version-specific <code translate="no" dir="ltr">firebase-crashlytics-gradle-x.y.z-third_party_licences.txt</code> Maven artifact.</li> </ul> <h3 id="ab-testing_v19-0-1" data-text="A/B Testing version 19.0.1" tabindex="-1"><span class="notranslate">A/B Testing</span> version 19.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="app-indexing_v19-1-0" data-text="App Indexing version 19.1.0" tabindex="-1"><span class="notranslate">App Indexing</span> version 19.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="firestore_v21-4-0" data-text="Cloud Firestore version 21.4.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.4.0</h3> <ul> <li><span class="release-feature"></span> Cloud Firestore previously required that every document read in a transaction must also be written. This requirement has been removed, and you can now read a document in a transaction without writing to it.</li> <li><span class="release-changed"></span> Cloud Firestore now recovers more quickly when connections suffering packet loss return to normal.</li> </ul> <h4 id="firestore-ktx_v21-4-0" data-text="Cloud Firestore Kotlin extensions version 21.4.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.4.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v19-0-2" data-text="Cloud Functions for Firebase Client SDK version 19.0.2" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 19.0.2</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h4 id="functions-client-ktx_v19-0-2" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 19.0.2" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 19.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-functions</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="storage_v19-1-1" data-text="Cloud Storage for Firebase version 19.1.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 19.1.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h4 id="storage-ktx_v19-1-1" data-text="Cloud Storage for Firebase Kotlin extensions version 19.1.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 19.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-storage</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="realtime-database_v19-2-1" data-text="Realtime Database version 19.2.1" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.2.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h4 id="realtime-database-ktx_v19-2-1" data-text="Realtime Database Kotlin extensions version 19.2.1" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-database</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="remote-config_v19-1-1" data-text="Remote Config version 19.1.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.1.1</h3> <ul> <li><span class="release-changed"></span> Updated <a href="/support/release-notes/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#fetch()"><code translate="no" dir="ltr">FirebaseRemoteConfig.fetch()</code></a> implementation to use <a href="/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId#getInstanceId()"><code translate="no" dir="ltr">FirebaseInstanceId.getInstanceId()</code></a> in favor of the deprecated <a href="/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId#getToken()"><code translate="no" dir="ltr">FirebaseInstanceId.getToken()</code></a>.</li> </ul> <h4 id="remote-config-ktx_v19-1-1" data-text="Remote Config Kotlin extensions version 19.1.1" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v24-6-0" data-text="Firebase Android BoM version 24.6.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.6.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.1</code></li> </ul> </section> <h2 id="2020-01-14" data-text="Update - January 14, 2020" tabindex="-1">Update - January 14, 2020</h2> <h3 id="analytics_v17-2-2" data-text="Analytics version 17.2.2" tabindex="-1"><span class="notranslate">Analytics</span> version 17.2.2</h3> <ul> <li><span class="release-fixed"></span> Bug fixes, including a fix for engagement time calculations, a fix related to first open attribution, and a fix for enhanced audience timestamps.</li> </ul> <h3 id="inappmessaging_v19-0-3" data-text="In-App Messaging version 19.0.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.0.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to enable future SDK improvements.</li> </ul> <h4 id="inappmessaging-ktx_v19-0-3" data-text="In-App Messaging Kotlin extensions version 19.0.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging-display_v19-0-3" data-text="In-App Messaging Display version 19.0.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.0.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to enable future SDK improvements.</li> </ul> <h4 id="inappmessaging-display-ktx_v19-0-3" data-text="In-App Messaging Display Kotlin extensions version 19.0.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="performance_v19-0-5" data-text="Performance Monitoring version 19.0.5" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.5</h3> <ul> <li><span class="release-fixed"></span> Muted logcat logging for <span class="notranslate">Firebase Performance Monitoring</span> when <code translate="no" dir="ltr">firebase_performance_logcat_enabled</code> is not set or set to false. (<a href="//github.com/firebase/firebase-android-sdk/issues/403">#403</a>)</li> <li><span class="release-fixed"></span> Skipped automatic performance event creation when <code translate="no" dir="ltr">firebase_performance_collection_enabled</code> is set to false.</li> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h3 id="crashlytics_v17-0-0-beta01" data-text="Crashlytics version 17.0.0-beta01" tabindex="-1"><span class="notranslate">Crashlytics</span> version 17.0.0-beta01</h3> <p>This release for <span class="notranslate">Firebase Crashlytics</span> includes the initial beta release of the <span class="notranslate">Firebase Crashlytics</span> SDK.</p> <p>The <span class="notranslate">Firebase Crashlytics</span> SDK is a new version of the <span class="notranslate">Crashlytics</span> SDK built <em>without</em> Fabric and instead built entirely on Firebase. This new SDK has new and improved APIs as well as an artifact name change. The following release notes describe changes in the new SDK.</p> <aside class="note"><p>The changes in these release notes are only relevant to <span class="notranslate">Crashlytics</span> users who are upgrading from the legacy Fabric SDK.</p> <ul> <li>If you're using <span class="notranslate">Crashlytics</span> for NDK crash reporting in your app for the first time, follow the <a href="/docs/crashlytics/get-started-new-sdk?platform=android">getting started instructions</a>. </li> <li>If you're upgrading from the legacy Fabric SDK to the <span class="notranslate">Firebase Crashlytics</span> SDK, follow the <a href="/docs/crashlytics/upgrade-sdk?platform=android">upgrade instructions</a> to update your app with the following SDK changes. </li> </ul> </aside> <ul> <li><span class="release-changed"></span> Replaced static methods with new instance methods that are more consistent with other Firebase SDKs and more intuitive to use. The new APIs give your users more control over how you collect their data.</li> <li><span class="release-removed"></span> Removed the Fabric <span class="notranslate">Crashlytics</span> API key. Now, <span class="notranslate">Crashlytics</span> will always use the <code translate="no" dir="ltr">google-services.json</code> file to associate your app with your Firebase project. If you linked your app from Fabric, remove the Fabric API key from your <code translate="no" dir="ltr">AndroidManifest.xml</code> file.</li> <li><span class="release-removed"></span> The <code translate="no" dir="ltr">fabric.properties</code> and <code translate="no" dir="ltr">crashlytics.properties</code> files are no longer supported. Remove them from your app.</li> </ul> <h3 id="crashlytics-ndk_v17-0-0-beta01" data-text="Crashlytics NDK version 17.0.0-beta01" tabindex="-1"><span class="notranslate">Crashlytics</span> NDK version 17.0.0-beta01</h3> <p>This release includes the initial beta release of the <span class="notranslate">Firebase Crashlytics</span> SDK for NDK crash reporting.</p> <p>The <span class="notranslate">Firebase Crashlytics</span> SDK for NDK is a new version of the <span class="notranslate">Crashlytics</span> SDK for NDK crash reporting built <em>without</em> Fabric and instead built entirely on Firebase. This new SDK has new and improved APIs as well as an artifact name change. The following release notes describe changes in the new SDK.</p> <aside class="note"><p>The changes in these release notes are only relevant to <span class="notranslate">Crashlytics</span> NDK users who are upgrading from the legacy Fabric SDK.</p> <ul> <li>If you're using <span class="notranslate">Crashlytics</span> for NDK crash reporting in your app for the first time, follow the <a href="/docs/crashlytics/get-started-new-sdk?platform=android">getting started instructions</a>. </li> <li>If you're upgrading from the legacy Fabric SDK to the <span class="notranslate">Firebase Crashlytics</span> SDK for NDK crash reporting, follow the <a href="/docs/crashlytics/upgrade-sdk?platform=android">upgrade instructions</a> to update your app with the following SDK changes. </li> </ul> </aside> <ul> <li><span class="release-changed"></span> <span class="notranslate">Crashlytics</span> NDK crash reporting will now start automatically when the <span class="notranslate">Crashlytics</span> NDK dependency is included in your app.</li> <li><span class="release-changed"></span> The <span class="notranslate">Crashlytics</span> Gradle plugin has new tasks to support uploading symbol files to <span class="notranslate">Crashlytics</span> servers. See the <a href="/docs/crashlytics/ndk-reports-new-sdk"><span class="notranslate">Crashlytics</span> Gradle plugin documentation</a> for more information.</li> </ul> <h3 id="crashlytics_gradle_plugin_v2-0-0-beta01" data-text="Crashlytics Gradle plugin version 2.0.0-beta01" tabindex="-1"><span class="notranslate">Crashlytics</span> Gradle plugin version 2.0.0-beta01</h3> <p>This release for <span class="notranslate">Firebase Crashlytics</span> includes the initial beta release of the <span class="notranslate">Firebase Crashlytics</span> Gradle plugin (<code translate="no" dir="ltr">firebase-crashlytics-gradle</code>).</p> <p>The <span class="notranslate">Firebase Crashlytics</span> Gradle plugin is a new version of the <span class="notranslate">Crashlytics</span> tools built <em>without</em> Fabric and instead built entirely on Firebase. This new plugin has improvements to the Gradle plugin interface as well as an artifact name change. The following release notes describe changes in the new plugin.</p> <aside class="note"><p>The changes in these release notes are only relevant to <span class="notranslate">Crashlytics</span> users who are upgrading from the legacy Fabric plugin.</p> <ul> <li>If you're using <span class="notranslate">Crashlytics</span> for NDK crash reporting in your app for the first time, follow the <a href="/docs/crashlytics/get-started-new-sdk?platform=android">getting started instructions</a>. </li> <li>If you're upgrading from the legacy Fabric SDK to the <span class="notranslate">Firebase Crashlytics</span> SDK, follow the <a href="/docs/crashlytics/upgrade-sdk?platform=android">upgrade instructions</a> to update your app with the following Gradle plugin changes. </li> </ul> </aside> <ul> <li><span class="release-removed"></span> Deprecated the <span class="notranslate">Crashlytics</span>-specific build parameters <code translate="no" dir="ltr">ext.alwaysUpdateBuildId</code>, <code translate="no" dir="ltr">ext.enableCrashlytics</code>, and <code translate="no" dir="ltr">ext.enableCrashlyticsNdk</code>. Remove them from your Gradle configuration.</li> <li><span class="release-feature"></span> Renamed the <code translate="no" dir="ltr">crashlytics</code> extension configuration block to <code translate="no" dir="ltr">firebaseCrashlytics</code>. You can now configure the <code translate="no" dir="ltr">firebaseCrashlytics</code> block as part of your build type or flavor.</li> <li><span class="release-feature"></span> Added a new <code translate="no" dir="ltr">mappingFileUploadEnabled</code> flag that controls uploading of deobfuscation files to <span class="notranslate">Crashlytics</span> servers. When this flag is <code translate="no" dir="ltr">false</code> for an app build, that app’s stack traces will not be deobfuscated in the <span class="notranslate">Crashlytics</span> dashboard.</li> <li><span class="release-feature"></span> Added a new <code translate="no" dir="ltr">mappingFile</code> parameter that overrides the default deobfuscation mapping file location.</li> <li><span class="release-feature"></span> Added a new <code translate="no" dir="ltr">nativeSymbolUploadEnabled</code> flag and associated Gradle task, <code translate="no" dir="ltr">crashlyticsUploadSymbolFile[Variant]</code>, which are required when using <a href="/docs/crashlytics/ndk-reports-new-sdk">Crashlytics NDK crash reporting</a>.</li> </ul> <h3 id="bom_v24-5-0" data-text="Firebase Android BoM version 24.5.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.5.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-buildtools:2.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crashlytics:17.0.0-beta01</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h2 id="2019-12-18" data-text="Update - December 18, 2019" tabindex="-1">Update - December 18, 2019</h2> <h3 id="appdistro_gradle_plugin_v1-3-1" data-text="App Distribution Gradle plugin version 1.3.1" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 1.3.1</h3> <ul> <li><span class="release-changed"></span> You no longer need to specify the <span class="notranslate">Firebase App Distribution</span> plugin after the Android Gradle plugin.</li> </ul> <h3 id="performance_v19-0-4" data-text="Performance Monitoring version 19.0.4" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.4</h3> <ul> <li><span class="release-changed"></span> Improved internal infrastructure to work better with <span class="notranslate">Firebase Remote Config</span>.</li> </ul> <h3 id="remote-config_v19-1-0" data-text="Remote Config version 19.1.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.1.0</h3> <ul> <li><span class="release-changed"></span> Added getters to the fields of the <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder"><code translate="no" dir="ltr">FirebaseRemoteConfigSettings.Builder</code></a> object to provide better Kotlin patterns.</li> </ul> <h4 id="remote-config-ktx_v19-1-0" data-text="Remote Config Kotlin extensions version 19.1.0" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v24-4-0" data-text="Firebase Android BoM version 24.4.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.4.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h2 id="2019-12-09" data-text="Update - December 09, 2019" tabindex="-1">Update - December 09, 2019</h2> <h3 id="appdistro_gradle_plugin_v1-3-0" data-text="App Distribution Gradle plugin version 1.3.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 1.3.0</h3> <ul> <li><span class="release-changed"></span> Improvements to app binary uploading</li> </ul> <h3 id="firestore_v21-3-1" data-text="Cloud Firestore version 21.3.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.3.1</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">Query.limitToLast(n: long)</code>, which returns the last <code translate="no" dir="ltr">n</code> documents as the result.</li> </ul> <h4 id="firestore-ktx_v21-3-1" data-text="Cloud Firestore Kotlin extensions version 21.3.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.3.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v20-1-0" data-text="Cloud Messaging version 20.1.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#setDeliveryMetricsExportToBigQuery(boolean)"><code translate="no" dir="ltr">setDeliveryMetricsExportToBigQuery(boolean)</code></a> and <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#deliveryMetricsExportToBigQueryEnabled()"><code translate="no" dir="ltr">deliveryMetricsExportToBigQueryEnabled()</code></a> to control and query if message delivery metrics are exported to BigQuery.</p></li> <li><p><span class="release-changed"></span> Changed to catch and log NullPointerException when trying to close the image download stream. This NPE can happen if the image download takes too long and times out.</p></li> </ul> <h3 id="iid_v20-0-2" data-text="Firebase Instance ID version 20.0.2" tabindex="-1">Firebase Instance ID version 20.0.2</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h3 id="performance_v19-0-3" data-text="Performance Monitoring version 19.0.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.3</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h3 id="remote-config_v19-0-4" data-text="Remote Config version 19.0.4" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.0.4</h3> <ul> <li><span class="release-fixed"></span> Resolved <a href="//github.com/firebase/firebase-android-sdk/issues/973">known issue</a> where network calls may fail on devices using API 19 and earlier.</li> </ul> <h4 id="remote-config-ktx_v19-0-4" data-text="Remote Config Kotlin extensions version 19.0.4" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.0.4</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v24-3-0" data-text="Firebase Android BoM version 24.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.3.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h2 id="2019-11-22" data-text="Update - November 22, 2019" tabindex="-1">Update - November 22, 2019</h2> <h3 id="auth_v19-2-0" data-text="Authentication version 19.2.0" tabindex="-1"><span class="notranslate">Authentication</span> version 19.2.0</h3> <ul> <li><span class="release-feature"></span> Added a new <a href="/docs/reference/android/com/google/firebase/auth/OAuthProvider.CredentialBuilder"><code translate="no" dir="ltr">OAuthProvider.CredentialBuilder</code></a> class with support for a nonce to enable headless sign-in for OIDC and OIDC-like flows.</li> </ul> <h3 id="bom_v24-2-0" data-text="Firebase Android BoM version 24.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.2.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h2 id="2019-11-11" data-text="Update - November 11, 2019" tabindex="-1">Update - November 11, 2019</h2> <h3 id="appdistro_gradle_plugin_v1-2-0" data-text="App Distribution Gradle plugin version 1.2.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 1.2.0</h3> <ul> <li><span class="release-feature"></span> You can now add trusted certificates by setting <code translate="no" dir="ltr">javax.net.ssl.trustStore</code> and <code translate="no" dir="ltr">javax.net.ssl.trustStorePassword</code> system properties.</li> </ul> <h3 id="firestore_v21-3-0" data-text="Cloud Firestore version 21.3.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.3.0</h3> <ul> <li><p><span class="release-feature"></span> Added <code translate="no" dir="ltr">Query.whereIn()</code> and <code translate="no" dir="ltr">Query.whereArrayContainsAny()</code> query operators. <code translate="no" dir="ltr">Query.whereIn()</code> finds documents where a specified field’s value is IN a specified array. <code translate="no" dir="ltr">Query.whereArrayContainsAny()</code> finds documents where a specified field is an array and contains ANY element of a specified array.</p></li> <li><p><span class="release-changed"></span> Improved the performance of repeatedly executed queries. Recently executed queries should see dramatic improvements. This benefit is reduced if changes accumulate while the query is inactive. Queries that use the <code translate="no" dir="ltr">limit()</code> API may not always benefit, depending on the accumulated changes.</p></li> </ul> <h4 id="firestore-ktx_v21-3-0" data-text="Cloud Firestore Kotlin extensions version 21.3.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.3.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v20-0-1" data-text="Cloud Messaging version 20.0.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed notifications on API level 24 and later to display the event time when <code translate="no" dir="ltr">event_time</code> is set.</li> </ul> <h3 id="inappmessaging_v19-0-2" data-text="In-App Messaging version 19.0.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.0.2</h3> <ul> <li><span class="release-changed"></span> Updated version of Dagger to 2.24.</li> <li><span class="release-changed"></span> Made info messages more clear in logcat.</li> </ul> <h4 id="inappmessaging-ktx_v19-0-2" data-text="In-App Messaging Kotlin extensions version 19.0.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Kotlin extensions version 19.0.2</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate">In-App Messaging</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-inappmessaging</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/inappmessaging/ktx/package-summary"><span class="notranslate">In-App Messaging</span> KTX documentation</a>.</li> </ul> <h3 id="inappmessaging-display_v19-0-2" data-text="In-App Messaging Display version 19.0.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.0.2</h3> <ul> <li><span class="release-changed"></span> Updated version of Dagger to 2.24.</li> <li><span class="release-fixed"></span> Bug fixes to improve SDK stability.</li> <li><span class="release-fixed"></span> Fixed memory leak.</li> </ul> <h4 id="inappmessaging-display-ktx_v19-0-2" data-text="In-App Messaging Display Kotlin extensions version 19.0.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display Kotlin extensions version 19.0.2</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate">In-App Messaging</span> Display Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-inappmessaging-display</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/inappmessaging/display/ktx/package-summary"><span class="notranslate">In-App Messaging</span> Display KTX documentation</a>.</li> </ul> <h3 id="iid_v20-0-1" data-text="Firebase Instance ID version 20.0.1" tabindex="-1">Firebase Instance ID version 20.0.1</h3> <ul> <li><span class="release-changed"></span> Internal improvements and refactored code.</li> </ul> <h3 id="mlkit-common_v22-0-1" data-text="ML Kit for Firebase Common version 22.0.1" tabindex="-1">ML Kit for Firebase Common version 22.0.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision_v24-0-1" data-text="ML Kit for Firebase Vision version 24.0.1" tabindex="-1">ML Kit for Firebase Vision version 24.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug which allowed the use of <a href="/docs/reference/android/com/google/firebase/ml/vision/automl/FirebaseAutoMLRemoteModel"><code translate="no" dir="ltr">FirebaseAutoMLRemoteModel</code></a> when instantiating AutoML <code translate="no" dir="ltr">FirebaseVisionImageLabeler</code> without calling <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager"><code translate="no" dir="ltr">FirebaseModelManager.download</code></a> if the model had already been downloaded and existed locally.</li> </ul> <h3 id="mlkit-vision-barcode-model_v16-0-2" data-text="ML Kit for Firebase Barcode Model version 16.0.2" tabindex="-1">ML Kit for Firebase Barcode Model version 16.0.2</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-obj-detection-tracking-model_v19-0-3" data-text="ML Kit for Firebase Object Detection and Tracking Model version 19.0.3" tabindex="-1">ML Kit for Firebase Object Detection and Tracking Model version 19.0.3</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-model-interpreter_v22-0-1" data-text="ML Kit for Firebase Model Interpreter version 22.0.1" tabindex="-1">ML Kit for Firebase Model Interpreter version 22.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug which allowed the use of <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseCustomRemoteModel"><code translate="no" dir="ltr">FirebaseCustomRemoteModel</code></a> when instantiating <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseModelInterpreter"><code translate="no" dir="ltr">FirebaseModelInterpreter</code></a> without calling <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager"><code translate="no" dir="ltr">FirebaseModelManager.download</code></a> if the model had already been downloaded and existed locally.</li> </ul> <h3 id="mlkit-vision-automl_v18-0-3" data-text="ML Kit for Firebase Vision AutoML version 18.0.3" tabindex="-1">ML Kit for Firebase Vision AutoML version 18.0.3</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="performance_v19-0-2" data-text="Performance Monitoring version 19.0.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.2</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h3 id="bom_v24-1-0" data-text="Firebase Android BoM version 24.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-ktx:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h2 id="2019-10-25" data-text="Update - October 25, 2019" tabindex="-1">Update - October 25, 2019</h2> <h3 id="analytics_v17-2-1" data-text="Analytics version 17.2.1" tabindex="-1"><span class="notranslate">Analytics</span> version 17.2.1</h3> <ul> <li><span class="release-fixed"></span> Bug fixes, including latency improvements and some minor improvements to data accuracy.</li> </ul> <h3 id="firestore_v21-2-1" data-text="Cloud Firestore version 21.2.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.2.1</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue where devices targeting Android API level 19 or earlier would crash when they were unable to connect to <span class="notranslate">Cloud Firestore</span>.</p></li> <li><p><span class="release-fixed"></span> Fixed a race condition in Documents where access to <code translate="no" dir="ltr">getData</code> and <code translate="no" dir="ltr">getField</code> on the same document in different threads could cause a <code translate="no" dir="ltr">NullPointerException</code>.</p></li> <li><p><span class="release-fixed"></span> Fixed a race condition that could cause a <code translate="no" dir="ltr">NullPointerException</code> during client initialization.</p></li> </ul> <h4 id="firestore-ktx_v21-2-1" data-text="Cloud Firestore Kotlin extensions version 21.2.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.2.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v24-0-1" data-text="Firebase Android BoM version 24.0.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.0.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h3 id="bom_v24-0-2" data-text="Firebase Android BoM version 24.0.2" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.0.2</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h2 id="2019-10-16" data-text="Update - October 16, 2019" tabindex="-1">Update - October 16, 2019</h2> <h3 id="appdistro_gradle_plugin_v1-1-0" data-text="App Distribution Gradle plugin version 1.1.0" tabindex="-1"><span class="notranslate">App Distribution</span> Gradle plugin version 1.1.0</h3> <ul> <li><span class="release-changed"></span> Updated Android Gradle Plugin API usage because the existing usage will be removed from the API by the end of 2019. This fixes the <code translate="no" dir="ltr">variantOutput.getPackageApplication() is obsolete</code> warning that appears when using Android Gradle Plugin v3.3.0 and later.</li> </ul> <h3 id="firestore_v21-2-0" data-text="Cloud Firestore version 21.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.2.0</h3> <ul> <li><span class="release-feature"></span> Added an <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#addSnapshotsInSyncListener(java.lang.Runnable)"><code translate="no" dir="ltr">addSnapshotsInSyncListener()</code></a> method to <code translate="no" dir="ltr">FirebaseFirestore</code> that notifies you when all your snapshot listeners are in sync with each other.</li> </ul> <h4 id="firestore-ktx_v21-2-0" data-text="Cloud Firestore Kotlin extensions version 21.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="mlkit-common_v22-0-0" data-text="ML Kit for Firebase Common version 22.0.0" tabindex="-1">ML Kit for Firebase Common version 22.0.0</h3> <aside class="caution"><strong>This release contains breaking changes.</strong> Review details of the changes below.</aside> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">FirebaseRemoteModel</code> with the following changes in order to get feature specific handling:</p> <ul> <li><a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseRemoteModel"><code translate="no" dir="ltr">FirebaseRemoteModel</code></a> and <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseLocalModel"><code translate="no" dir="ltr">FirebaseLocalModel</code></a> initializers are disabled. With this release, new subclasses have been added for AutoML, Custom, and Translate SDKs. Use the initializers for those subclasses to create instances of remote and local models.</li> <li><code translate="no" dir="ltr">initialConditions</code> and <code translate="no" dir="ltr">updatesConditions</code> are moved out of <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseRemoteModel"><code translate="no" dir="ltr">FirebaseRemoteModel</code></a>; now specify the <code translate="no" dir="ltr">downloadConditions</code> in the <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager"><code translate="no" dir="ltr">FirebaseModelManager.download</code></a> API.</li> </ul></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">FirebaseModelManager</code> with the following changes to simplify developer workflow for using remoteModel and localModel:</p> <ul> <li>Simplified the API by eliminating the requirement of advance model registration. <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseRemoteModel"><code translate="no" dir="ltr">FirebaseRemoteModel</code></a> and <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseLocalModel"><code translate="no" dir="ltr">FirebaseLocalModel</code></a> registration APIs are removed.</li> <li><code translate="no" dir="ltr">deleteDownloadedModel(remoteModel)</code> API is introduced to remove downloaded models not in use to save space.</li> <li>Updated <code translate="no" dir="ltr">downloadRemoteModelIfNeeded(remoteModel)</code> to <code translate="no" dir="ltr">download(remoteModel, downloadConditions)</code>. Download conditions can now be specified directly at the time when the download API is invoked.</li> <li>Developers now have full control and flexibility to customize the model download options to fit their needs, including indicating whether to use a remote model or a local model.</li> <li>Added <code translate="no" dir="ltr">isModelDownloaded(remoteModel)</code> API.</li> </ul></li> </ul> <h3 id="mlkit-vision_v24-0-0" data-text="ML Kit for Firebase Vision version 24.0.0" tabindex="-1">ML Kit for Firebase Vision version 24.0.0</h3> <aside class="caution"><strong>This release contains breaking changes.</strong> Review details of the changes below.</aside> <ul> <li><p><span class="release-changed"></span> Added <a href="/docs/reference/android/com/google/firebase/ml/vision/automl/FirebaseAutoMLRemoteModel"><code translate="no" dir="ltr">FirebaseAutoMLRemoteModel</code></a> and <a href="/docs/reference/android/com/google/firebase/ml/vision/automl/FirebaseAutoMLLocalModel"><code translate="no" dir="ltr">FirebaseAutoMLLocalModel</code></a> as instantiable subclasses of <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseRemoteModel"><code translate="no" dir="ltr">FirebaseRemoteModel</code></a> and <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseLocalModel"><code translate="no" dir="ltr">FirebaseLocalModel</code></a> classes, respectively.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated the initializers for <a href="/docs/reference/android/com/google/firebase/ml/vision/label/FirebaseVisionOnDeviceAutoMLImageLabelerOptions"><code translate="no" dir="ltr">FirebaseVisionOnDeviceAutoMLImageLabelerOptions</code></a> to be initialized with <em>either</em> a <a href="/docs/reference/android/com/google/firebase/ml/vision/automl/FirebaseAutoMLRemoteModel"><code translate="no" dir="ltr">FirebaseAutoMLRemoteModel</code></a> or a <a href="/docs/reference/android/com/google/firebase/ml/vision/automl/FirebaseAutoMLLocalModel"><code translate="no" dir="ltr">FirebaseAutoMLLocalModel</code></a>, but not both.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Implicit model downloading is no longer available through the AutoML <code translate="no" dir="ltr">FirebaseVisionImageLabeler</code>. You must invoke the <code translate="no" dir="ltr">download(remoteModel, downloadConditions)</code> API from <code translate="no" dir="ltr">ModelManager</code> to download any <a href="/docs/reference/android/com/google/firebase/ml/vision/automl/FirebaseAutoMLRemoteModel"><code translate="no" dir="ltr">FirebaseAutoMLRemoteModel</code></a>.</p></li> <li><p><span class="release-feature"></span> Enhanced barcode scanner with better speed and accuracy. The enhancements are available in the <code translate="no" dir="ltr">firebase-ml-vision-barcode-model</code> v16.0.1 and later.</p></li> </ul> <h3 id="mlkit-vision-automl_v18-0-2" data-text="ML Kit for Firebase Vision AutoML version 18.0.2" tabindex="-1">ML Kit for Firebase Vision AutoML version 18.0.2</h3> <aside class="warning"><strong>Warning:</strong><span> Due to an issue in ML Kit for Firebase Vision AutoML v18.0.2, when using a <strong><em>remote model</em></strong>, you must call <code translate="no" dir="ltr">firebaseModelManager.download(remoteModel)</code> before initialization, regardless of what <code translate="no" dir="ltr">firebaseModelManager.isModelDownloaded()</code> returns.</span></aside> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision-barcode-model_v16-0-1" data-text="ML Kit for Firebase Barcode Model version 16.0.1" tabindex="-1">ML Kit for Firebase Barcode Model version 16.0.1</h3> <ul> <li><span class="release-feature"></span> Updated the Barcode implementation with the newly added Barcode Model, which comes with significant improvements in both latency and accuracy. Also added API to access the raw bytes for non UTF-8 encoded barcode data. To learn more, refer to the <a href="/docs/ml/android/read-barcodes">ML Kit for Firebase documentation</a>.</li> </ul> <h3 id="mlkit-obj-detection-tracking-model_v19-0-2" data-text="ML Kit for Firebase Object Detection and Tracking Model version 19.0.2" tabindex="-1">ML Kit for Firebase Object Detection and Tracking Model version 19.0.2</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-model-interpreter_v22-0-0" data-text="ML Kit for Firebase Model Interpreter version 22.0.0" tabindex="-1">ML Kit for Firebase Model Interpreter version 22.0.0</h3> <aside class="warning"><strong>Warning:</strong><span> Due to an issue in ML Kit for Firebase Model Interpreter v22.0.0, when using a <strong><em>remote model</em></strong>, you must call <code translate="no" dir="ltr">firebaseModelManager.download(remoteModel)</code> before initialization, regardless of what <code translate="no" dir="ltr">firebaseModelManager.isModelDownloaded()</code> returns.</span></aside> <aside class="caution"><strong>This release contains breaking changes.</strong> Review details of the changes below.</aside> <ul> <li><p><span class="release-changed"></span> Added <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseCustomRemoteModel"><code translate="no" dir="ltr">FirebaseCustomRemoteModel</code></a> and <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseCustomLocalModel"><code translate="no" dir="ltr">FirebaseCustomLocalModel</code></a> as instantiable subclasses of <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseRemoteModel"><code translate="no" dir="ltr">FirebaseRemoteModel</code></a> and <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseLocalModel"><code translate="no" dir="ltr">FirebaseLocalModel</code></a> classes, respectively.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Replace <code translate="no" dir="ltr">FirebaseModelOptions</code> with <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseModelInterpreterOptions"><code translate="no" dir="ltr">FirebaseModelInterpreterOptions</code></a>. Note that <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseModelInterpreterOptions"><code translate="no" dir="ltr">FirebaseModelInterpreterOptions</code></a> can only be initialized with <em>either</em> a <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseCustomRemoteModel"><code translate="no" dir="ltr">FirebaseCustomRemoteModel</code></a> or a <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseCustomLocalModel"><code translate="no" dir="ltr">FirebaseCustomLocalModel</code></a>, but not both.</p></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Implicit model downloading is no longer available through the <code translate="no" dir="ltr">FirebaseModelInterpreter</code>. You must invoke the <code translate="no" dir="ltr">download(remoteModel, downloadConditions)</code> API from <code translate="no" dir="ltr">FirebaseModelManager</code> to download any <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseCustomRemoteModel"><code translate="no" dir="ltr">FirebaseCustomRemoteModel</code></a>.</p></li> </ul> <h3 id="mlkit-natural-lang_v22-0-0" data-text="ML Kit for Firebase Natural Language version 22.0.0" tabindex="-1">ML Kit for Firebase Natural Language version 22.0.0</h3> <aside class="caution"><strong>This release contains breaking changes.</strong> Review details of the changes below.</aside> <ul> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <a href="/docs/reference/android/com/google/firebase/ml/naturallanguage/translate/FirebaseTranslateRemoteModel"><code translate="no" dir="ltr">FirebaseTranslateRemoteModel</code></a> with the following changes to simplify the developer workflow:</p> <ul> <li>Removed the <code translate="no" dir="ltr">setFirebaseApp</code> method in <a href="/docs/reference/android/com/google/firebase/ml/naturallanguage/translate/FirebaseTranslateRemoteModel.Builder"><code translate="no" dir="ltr">Builder</code></a>. A custom <code translate="no" dir="ltr">FirebaseApp</code> is now supported through the <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager#getInstance(com.google.firebase.FirebaseApp)"><code translate="no" dir="ltr">getInstance</code></a> method in <code translate="no" dir="ltr">FirebaseModelManager</code>.</li> <li>Removed the <code translate="no" dir="ltr">setDownloadConditions</code> method in <a href="/docs/reference/android/com/google/firebase/ml/naturallanguage/translate/FirebaseTranslateRemoteModel.Builder"><code translate="no" dir="ltr">Builder</code></a>. Download conditions are now passed to the <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager#download(com.google.firebase.ml.common.modeldownload.FirebaseRemoteModel,com.google.firebase.ml.common.modeldownload.FirebaseModelDownloadConditions)"><code translate="no" dir="ltr">download</code></a> method in <code translate="no" dir="ltr">FirebaseModelManager</code>.</li> </ul></li> <li><p><span class="release-changed"></span> <strong>Breaking change:</strong> Removed <code translate="no" dir="ltr">FirebaseTranslateModelManager</code>. Translate models are now handled through <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager"><code translate="no" dir="ltr">FirebaseModelManager</code></a>.</p></li> </ul> <h3 id="mlkit-natural-lang-id-model_v20-0-7" data-text="ML Kit for Firebase Language Identification Model version 20.0.7" tabindex="-1">ML Kit for Firebase Language Identification Model version 20.0.7</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-smart-reply-model_v20-0-7" data-text="ML Kit for Firebase Smart Reply Model version 20.0.7" tabindex="-1">ML Kit for Firebase Smart Reply Model version 20.0.7</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-translate-model_v20-0-7" data-text="ML Kit for Firebase Translate Model version 20.0.7" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.7</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="performance_v19-0-1" data-text="Performance Monitoring version 19.0.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.1</h3> <ul> <li><span class="release-changed"></span> Internal infrastructure improvements.</li> </ul> <h3 id="realtime-database_v19-2-0" data-text="Realtime Database version 19.2.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.2.0</h3> <ul> <li><span class="release-feature"></span> Added support for type wildcards in <a href="/docs/reference/android/com/google/firebase/database/GenericTypeIndicator"><code translate="no" dir="ltr">GenericTypeIndicator</code></a>, expanding our custom class serialization to include classes with wildcard generics.</li> </ul> <h4 id="database-ktx_v19-2-0" data-text="Realtime Database Kotlin extensions version 19.2.0" tabindex="-1"><span class="notranslate">Realtime Database</span> Kotlin extensions version 19.2.0</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate">Realtime Database</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-database</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary"><span class="notranslate">Realtime Database</span> KTX documentation</a>.</li> </ul> <h3 id="remote-config_v19-0-3" data-text="Remote Config version 19.0.3" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.0.3</h3> <ul> <li><p><span class="release-fixed"></span> Resolved <a href="https://github.com/firebase/firebase-android-sdk/issues/787">known issue</a> where the <span class="notranslate">Firebase Remote Config</span> SDK threw an error when Android <a href="https://developer.android.com/reference/android/os/StrictMode">StrictMode</a> was turned on.</p></li> <li><p><span class="release-fixed"></span> Resolved issue where setting Byte Arrays via <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(int)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaultsAsync(int)</code></a>, <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(Map%3CString,Object%3E)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaultsAsync(Map&lt;String,Object&gt;)</code></a> and their synchronous counterparts would cause <code translate="no" dir="ltr">getByteArray</code> to return an object reference instead of the Byte Array. Byte Arrays set via the Firebase console were unaffected by this bug.</p></li> </ul> <h4 id="remote-config-ktx_v19-0-3" data-text="Remote Config Kotlin extensions version 19.0.3" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.0.3</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-config</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v23-0-0" data-text="Firebase Android BoM version 23.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 23.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h3 id="bom_v24-0-0" data-text="Firebase Android BoM version 24.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 24.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config-ktx:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database-ktx:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore-ktx:21.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions-ktx:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-barcode-model:16.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:24.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage-ktx:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h2 id="2019-09-26" data-text="Update - September 26, 2019" tabindex="-1">Update - September 26, 2019</h2> <h3 id="auth_v19-1-0" data-text="Authentication version 19.1.0" tabindex="-1"><span class="notranslate">Authentication</span> version 19.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added a new API to retrieve the email that a user entered to sign-in. This is helpful in the event of a recoverable error.</p> <p>You can retrieve the email from <code translate="no" dir="ltr">FirebaseAuthUserCollisionException#getEmail()</code>. You can then use the <code translate="no" dir="ltr">fetchSignInMethodsForEmail</code> API to know which sign-in method to use to prompt the user, then link with <code translate="no" dir="ltr">FirebaseAuthUserCollisionException#getUpdatedCredential()</code>. This is especially useful when using Generic IDP sign-in.</p></li> </ul> <h3 id="storage_v19-1-0" data-text="Cloud Storage for Firebase version 19.1.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 19.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added <code translate="no" dir="ltr">getCacheControl()</code>, <code translate="no" dir="ltr">getContentDisposition()</code>, <code translate="no" dir="ltr">getContentEncoding()</code>, <code translate="no" dir="ltr">getContentLanguage()</code>, and <code translate="no" dir="ltr">getContentType()</code> to <a href="/docs/reference/android/com/google/firebase/storage/StorageMetadata.Builder"><code translate="no" dir="ltr">StorageMetadata.Builder</code></a> to provide access to the current state of the metadata.</p></li> <li><p><span class="release-fixed"></span> Fixed an encoding issue in <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#list(int)"><code translate="no" dir="ltr">StorageReference.list()</code></a> that caused the API to miss entries for prefixes that contained special characters.</p></li> </ul> <h4 id="storage-ktx_v19-1-0" data-text="Cloud Storage for Firebase Kotlin extensions version 19.1.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> Kotlin extensions version 19.1.0</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate">Cloud Storage for Firebase</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-storage</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary"><span class="notranslate">Cloud Storage for Firebase</span> KTX documentation</a>.</li> </ul> <h3 id="inappmessaging_v19-0-1" data-text="In-App Messaging version 19.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to accommodate open-sourcing of the library and to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="inappmessaging-display_v19-0-1" data-text="In-App Messaging Display version 19.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to accommodate open-sourcing of the library and to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="mlkit-natural-lang_v21-0-3" data-text="ML Kit for Firebase Natural Language version 21.0.3" tabindex="-1">ML Kit for Firebase Natural Language version 21.0.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="mlkit-natural-lang-id-model_v20-0-6" data-text="ML Kit for Firebase Language Identification Model version 20.0.6" tabindex="-1">ML Kit for Firebase Language Identification Model version 20.0.6</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-smart-reply-model_v20-0-6" data-text="ML Kit for Firebase Smart Reply Model version 20.0.6" tabindex="-1">ML Kit for Firebase Smart Reply Model version 20.0.6</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-translate-model_v20-0-6" data-text="ML Kit for Firebase Translate Model version 20.0.6" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.6</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="remote-config_v19-0-2" data-text="Remote Config version 19.0.2" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.0.2</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate">Remote Config</span> Kotlin extensions library.</li> </ul> <h4 id="remote-config-ktx_v19-0-2" data-text="Remote Config Kotlin extensions version 19.0.2" tabindex="-1"><span class="notranslate">Remote Config</span> Kotlin extensions version 19.0.2</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate">Remote Config</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-config</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/remoteconfig/ktx/package-summary"><span class="notranslate">Remote Config</span> KTX documentation</a>.</li> </ul> <h3 id="firebase-gradle_plugins_2019-09-26" data-text="Firebase Gradle Plugins" tabindex="-1">Firebase Gradle Plugins</h3> <ul> <li><span class="release-feature"></span> The <code translate="no" dir="ltr">firebase-appdistribution-gradle</code> plugin v1.0.0 is now available. Refer to the <a href="https://firebase.google.com/docs/app-distribution/android/distribute-gradle"><span class="notranslate">App Distribution</span> documentation</a> for more information about using this plugin in your app.</li> </ul> <h3 id="bom_v22-3-0" data-text="Firebase Android BoM version 22.3.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 22.3.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.6</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:21.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:21.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:23.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.1.0</code></li> </ul> </section> <h2 id="2019-09-13" data-text="Update - September 13, 2019" tabindex="-1">Update - September 13, 2019</h2> <h3 id="firestore_v21.1.1" data-text="Cloud Firestore version 21.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.1.1</h3> <ul> <li><span class="release-fixed"></span> Addressed a regression in v21.1.0 that caused the crash: &quot;Cannot add document to the RemoteDocumentCache with a read time of zero&quot;.</li> </ul> <h4 id="firestore-ktx_v21-1-1" data-text="Cloud Firestore Kotlin extensions version 21.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.1.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v22-2-1" data-text="Firebase Android BoM version 22.2.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 22.2.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:21.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:21.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:23.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.0.1</code></li> </ul> </section> <h2 id="2019-09-09" data-text="Update - September 09, 2019" tabindex="-1">Update - September 09, 2019</h2> <h3 id="firestore_v21.1.0" data-text="Cloud Firestore version 21.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.1.0</h3> <aside class="warning"><strong>Warning:</strong><span> We have received reports that this <strong>v21.1.0 release</strong> of the Firebase Android SDK for <span class="notranslate">Cloud Firestore</span> can trigger an uncaught exception. Make sure to update to the next version of the Cloud Firestore SDK to get the fix.</span></aside> <ul> <li><p><span class="release-feature"></span> Added a <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#terminate()"><code translate="no" dir="ltr">FirebaseFirestore.terminate()</code></a> method which terminates the instance, releasing any held resources. Once it completes, you can optionally call <code translate="no" dir="ltr">clearPersistence()</code> to wipe persisted <span class="notranslate">Cloud Firestore</span> data from disk.</p></li> <li><p><span class="release-feature"></span> Added a <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#waitForPendingWrites()"><code translate="no" dir="ltr">FirebaseFirestore.waitForPendingWrites()</code></a> method which allows users to wait on a promise that resolves when all pending writes are acknowledged by the <span class="notranslate">Cloud Firestore</span> backend.</p></li> <li><p><span class="release-changed"></span> Transactions now perform exponential backoff before retrying. This means transactions on highly contended documents are more likely to succeed.</p></li> </ul> <h4 id="firestore-ktx_v21-1-0" data-text="Cloud Firestore Kotlin extensions version 21.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="storage_v19-0-1" data-text="Cloud Storage for Firebase version 19.0.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 19.0.1</h3> <ul> <li><span class="release-fixed"></span> <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#listAll()"><code translate="no" dir="ltr">StorageReference.listAll()</code></a> now propagates the error messages if the List operation was denied by a Security Rule.</li> </ul> <h3 id="mlkit-natural-lang_v21-0-2" data-text="ML Kit for Firebase Natural Language version 21.0.2" tabindex="-1">ML Kit for Firebase Natural Language version 21.0.2</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="mlkit-natural-lang-id-model_v20-0-5" data-text="ML Kit for Firebase Language Identification Model version 20.0.5" tabindex="-1">ML Kit for Firebase Language Identification Model version 20.0.5</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-smart-reply-model_v20-0-5" data-text="ML Kit for Firebase Smart Reply Model version 20.0.5" tabindex="-1">ML Kit for Firebase Smart Reply Model version 20.0.5</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-translate-model_v20-0-5" data-text="ML Kit for Firebase Translate Model version 20.0.5" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.5</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="realtime-database_v19-1-0" data-text="Realtime Database version 19.1.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.1.0</h3> <ul> <li><span class="release-feature"></span> Added support for the <span class="notranslate">Firebase Realtime Database</span> Emulator. To connect to the emulator, specify &quot;http://<hostname>:<port>/?ns=<project_id>&quot; as your Database URL (via <a href="/docs/reference/android/com/google/firebase/database/FirebaseDatabase#getSdkVersion()"><code translate="no" dir="ltr">FirebaseDatabase.getInstance(String)</code></a>). Note that if you are running the <span class="notranslate">Realtime Database</span> Emulator on &quot;localhost&quot; and connecting from an app that is running inside an Android Emulator, the <span class="notranslate">Realtime Database</span> Emulator host will be &quot;10.0.2.2&quot; followed by its port.</li> </ul> <h3 id="remote-config_v19-0-1" data-text="Remote Config version 19.0.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.0.1</h3> <ul> <li><span class="release-fixed"></span> Resolved known issue where certain unicode characters were not encoded correctly. The issue was introduced in v19.0.0.</li> </ul> <h3 id="bom_v22-2-0" data-text="Firebase Android BoM version 22.2.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 22.2.0</h3> <aside class="warning"><strong>Warning:</strong><span> We have received reports of an issue in the <span class="notranslate">Cloud Firestore</span> SDK v21.1.0 release. Consequently, this issue also affects the <strong><span class="notranslate">Firebase BoM</span> v22.2.0 release</strong>. Make sure to update to the next version of the <span class="notranslate">Firebase BoM</span> to get the fix.</span></aside> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.5</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:21.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:21.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:23.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.0.1</code></li> </ul> </section> <h2 id="2019-09-06" data-text="Update - September 06, 2019" tabindex="-1">Update - September 06, 2019</h2> <h3 id="google-services_plugin_v4-3-2" data-text="google-services plugin 4.3.2" tabindex="-1">google-services plugin 4.3.2</h3> <ul> <li><span class="release-fixed"></span> Fixed regressions unintentionally released in v4.3.1 of the plugin.</li> <li><span class="release-fixed"></span> Version bump for strict-version-matcher dependency. For more details, refer to <a href="https://github.com/google/play-services-plugins/pull/83">GitHub PR 83</a>.</li> <li><span class="release-fixed"></span> Fixed the <code translate="no" dir="ltr">getMergeResourcesProvider</code> warning. For more details, refer to <a href="https://github.com/google/play-services-plugins/pull/82">GitHub PR 82</a>.</li> </ul> <h2 id="2019-08-28" data-text="Update - August 28, 2019" tabindex="-1">Update - August 28, 2019</h2> <h3 id="analytics_v17-2-0" data-text="Analytics version 17.2.0" tabindex="-1"><span class="notranslate">Analytics</span> version 17.2.0</h3> <ul> <li><p><span class="release-fixed"></span> Bug fixes, including addressing an issue where sessions may not have been accurately reported.</p></li> <li><p><span class="release-feature"></span> Added support for monitoring the launch of new features via Firebase Remote Config.</p></li> </ul> <h3 id="functions-client_v19-0-1" data-text="Cloud Functions for Firebase Client SDK version 19.0.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 19.0.1</h3> <ul> <li><span class="release-unchanged"></span> Updated to accommodate the release of the <span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions library.</li> </ul> <h4 id="functions-client-ktx_v19-0-1" data-text="Cloud Functions for Firebase Client SDK Kotlin extensions version 19.0.1" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Kotlin extensions version 19.0.1</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-functions</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/functions/ktx/package-summary"><span class="notranslate">Cloud Functions</span> KTX documentation</a>.</li> </ul> <h3 id="mlkit-natural-lang_v21-0-1" data-text="ML Kit for Firebase Natural Language version 21.0.1" tabindex="-1">ML Kit for Firebase Natural Language version 21.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="mlkit-natural-lang-id-model_v20-0-4" data-text="ML Kit for Firebase Language Identification Model version 20.0.4" tabindex="-1">ML Kit for Firebase Language Identification Model version 20.0.4</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-smart-reply-model_v20-0-4" data-text="ML Kit for Firebase Smart Reply Model version 20.0.4" tabindex="-1">ML Kit for Firebase Smart Reply Model version 20.0.4</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-translate-model_v20-0-4" data-text="ML Kit for Firebase Translate Model version 20.0.4" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.4</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="bom_v22-1-0" data-text="Firebase Android BoM version 22.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 22.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:21.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:21.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:23.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.0.0</code></li> </ul> </section> <h2 id="2019-08-22" data-text="Update - August 22, 2019" tabindex="-1">Update - August 22, 2019</h2> <h3 id="google-services_plugin_v4-3-1" data-text="google-services plugin 4.3.1" tabindex="-1">google-services plugin 4.3.1</h3> <ul> <li><span class="release-fixed"></span> Internal improvements</li> <li><span class="release-fixed"></span> Removed calls to deprecated API</li> </ul> <h2 id="2019-08-16" data-text="Update - August 16, 2019" tabindex="-1">Update - August 16, 2019</h2> <aside class="note"><strong>Note:</strong><span> This release adds nullabillity annotations to all Firebase public APIs to improve the Kotlin developer experience. This addition requires a major versioning of <em>all</em> Firebase Android SDKs, including those with no other updates.</span></aside> <h3 id="analytics_v17-1-0" data-text="Analytics version 17.1.0" tabindex="-1"><span class="notranslate">Analytics</span> version 17.1.0</h3> <ul> <li><p><span class="release-fixed"></span> Fixed bugs, including a problem that could lead to inaccurate data from devices without Google Play Services installed, and an unnecessary provider declaration in AndroidManifest.xml.</p></li> <li><p><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience.</p></li> </ul> <h3 id="app-indexing_v19-0-0" data-text="App Indexing version 19.0.0" tabindex="-1"><span class="notranslate">App Indexing</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="auth_v19-0-0" data-text="Authentication version 19.0.0" tabindex="-1"><span class="notranslate">Authentication</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="firestore_v21-0-0" data-text="Cloud Firestore version 21.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> Transactions are now more flexible. Some sequences of operations that were previously incorrectly disallowed are now allowed. For example, after reading a document that doesn&#39;t exist, you can now set it multiple times successfully in a transaction.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue where query results were temporarily missing documents that previously had not matched but had been updated to now match the query. Refer to this <a href="https://github.com/firebase/firebase-android-sdk/issues/155">GitHub issue</a> for more details.</p></li> <li><p><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience.</p></li> </ul> <h4 id="firestore-ktx_v21-0-0" data-text="Cloud Firestore Kotlin extensions version 21.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 21.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v19-0-0" data-text="Cloud Functions for Firebase Client SDK version 19.0.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="messaging_v20-0-0" data-text="Cloud Messaging version 20.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 20.0.0</h3> <ul> <li><p><span class="release-feature"></span> Added support for more Android notification parameters, including: <code translate="no" dir="ltr">ticker</code>, <code translate="no" dir="ltr">sticky</code>,<code translate="no" dir="ltr">event_time</code>, <code translate="no" dir="ltr">local_only</code>, <code translate="no" dir="ltr">notification_priority</code>, <code translate="no" dir="ltr">default_sound</code>, <code translate="no" dir="ltr">default_vibrate_timings</code>, <code translate="no" dir="ltr">default_light_settings</code>, <code translate="no" dir="ltr">visibility</code>, <code translate="no" dir="ltr">notification_count</code>, <code translate="no" dir="ltr">vibrate_timings</code> and <code translate="no" dir="ltr">light_settings</code>.</p></li> <li><p><span class="release-feature"></span> Added support for Android notifications that include an image.</p></li> <li><p><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience.</p></li> </ul> <h3 id="storage_v19-0-0" data-text="Cloud Storage for Firebase version 19.0.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="crashlytics_v2-10-1" data-text="Crashlytics version 2.10.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 2.10.1</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="dynamic-links_v19-0-0" data-text="Dynamic Links version 19.0.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="inappmessaging_v19-0-0" data-text="In-App Messaging version 19.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="inappmessaging-display_v19-0-0" data-text="In-App Messaging Display version 19.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="mlkit-common_v21-0-0" data-text="ML Kit for Firebase Common version 21.0.0" tabindex="-1">ML Kit for Firebase Common version 21.0.0</h3> <ul> <li><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="mlkit-vision_v23-0-0" data-text="ML Kit for Firebase Vision version 23.0.0" tabindex="-1">ML Kit for Firebase Vision version 23.0.0</h3> <ul> <li><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="mlkit-obj-detection-tracking-model_v19-0-1" data-text="ML Kit for Firebase Object Detection and Tracking Model version 19.0.1" tabindex="-1">ML Kit for Firebase Object Detection and Tracking Model version 19.0.1</h3> <ul> <li><p><span class="release-changed"></span> Internal improvement.</p></li> <li><p><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience.</p></li> </ul> <h3 id="mlkit-vision-automl_v18-0-1" data-text="ML Kit for Firebase Vision AutoML version 18.0.1" tabindex="-1">ML Kit for Firebase Vision AutoML version 18.0.1</h3> <ul> <li><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="mlkit-natural-lang_v21-0-0" data-text="ML Kit for Firebase Natural Language version 21.0.0" tabindex="-1">ML Kit for Firebase Natural Language version 21.0.0</h3> <ul> <li><p><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</p></li> <li><p><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience.</p></li> </ul> <h3 id="mlkit-natural-lang-id-model_v20-0-3" data-text="ML Kit for Firebase Language Identification Model version 20.0.3" tabindex="-1">ML Kit for Firebase Language Identification Model version 20.0.3</h3> <ul> <li><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="mlkit-smart-reply-model_v20-0-3" data-text="ML Kit for Firebase Smart Reply Model version 20.0.3" tabindex="-1">ML Kit for Firebase Smart Reply Model version 20.0.3</h3> <ul> <li><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="mlkit-translate-model_v20-0-3" data-text="ML Kit for Firebase Translate Model version 20.0.3" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.3</h3> <ul> <li><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="mlkit-model-interpreter_v21-0-0" data-text="ML Kit for Firebase Model Interpreter version 21.0.0" tabindex="-1">ML Kit for Firebase Model Interpreter version 21.0.0</h3> <ul> <li><span class="release-changed"></span> Added nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="performance_v19-0-0" data-text="Performance Monitoring version 19.0.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="realtime-database_v19-0-0" data-text="Realtime Database version 19.0.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="remote-config_v19-0-0" data-text="Remote Config version 19.0.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.</li> </ul> <h3 id="bom_v22-0-0" data-text="Firebase Android BoM version 22.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 22.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:23.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:19.0.0</code></li> </ul> </section> <h2 id="2019-08-01" data-text="Update - August 1, 2019" tabindex="-1">Update - August 1, 2019</h2> <h3 id="firebase-gradle_plugins_v1-3-1" data-text="Firebase Gradle Plugins" tabindex="-1">Firebase Gradle Plugins</h3> <ul> <li><span class="release-fixed"></span> <code translate="no" dir="ltr">perf-plugin</code> v1.3.1 — This release contains some minor fixes and improvements.</li> </ul> <h2 id="2019-07-24" data-text="Update - July 24, 2019" tabindex="-1">Update - July 24, 2019</h2> <h3 id="firestore_v20-2-0" data-text="Cloud Firestore version 20.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 20.2.0</h3> <ul> <li><p><span class="release-feature"></span> Added a <code translate="no" dir="ltr">@DocumentId</code> annotation which can be used on a <code translate="no" dir="ltr">DocumentReference</code> or <code translate="no" dir="ltr">String</code> property in a POJO to indicate that the SDK should automatically populate it with the document&#39;s ID.</p></li> <li><p><span class="release-fixed"></span> Fixed an internal assertion that was triggered when an update with a <code translate="no" dir="ltr">FieldValue.serverTimestamp()</code> and an update with a <code translate="no" dir="ltr">FieldValue.increment()</code> were pending for the same document. Refer to this <a href="https://github.com/firebase/firebase-android-sdk/issues/491">GitHub issue</a> for more details.</p></li> <li><p><span class="release-changed"></span> Improved performance of queries with large result sets.</p></li> <li><p><span class="release-changed"></span> Improved performance for queries with filters that only return a small subset of the documents in a collection.</p></li> <li><p><span class="release-changed"></span> Instead of failing silently, <span class="notranslate">Cloud Firestore</span> now crashes the client app if it fails to load SSL Ciphers. To avoid these crashes, you must bundle Conscrypt to support non-GMSCore devices on Android API level 19 (KitKat) or earlier (for more information, refer to <a href="https://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-on-android">TLS on Android</a>).</p></li> </ul> <h4 id="firestore-ktx_v20-2-0" data-text="Cloud Firestore Kotlin extensions version 20.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 20.2.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v18-1-0" data-text="Cloud Functions for Firebase Client SDK version 18.1.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 18.1.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/functions/HttpsCallableReference"><code translate="no" dir="ltr">getTimeout</code></a> method to get the timeout for a callable. For more details, refer to <a href="//github.com/firebase/firebase-android-sdk/pull/574">GitHub PR #574</a>.</li> </ul> <h3 id="storage_v18-1-1" data-text="Cloud Storage for Firebase version 18.1.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 18.1.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="mlkit-natural-lang_v20-0-2" data-text="ML Kit for Firebase Natural Language version 20.0.2" tabindex="-1">ML Kit for Firebase Natural Language version 20.0.2</h3> <ul> <li><p><span class="release-fixed"></span> Fixed an issue where Smart Reply would log the input text. Refer to this <a href="https://github.com/firebase/firebase-android-sdk/issues/518">GitHub issue</a> for more details.</p></li> <li><p><span class="release-changed"></span> ML Kit Natural Language classes are now annotated with <code translate="no" dir="ltr">@ParametersAreNonnullByDefault</code> to ensure the compiler will warn about passing in null values to APIs that don&#39;t expect them.</p></li> </ul> <h3 id="mlkit-natural-lang-id-model_v20-0-2" data-text="ML Kit for Firebase Language Identification Model version 20.0.2" tabindex="-1">ML Kit for Firebase Language Identification Model version 20.0.2</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-smart-reply-model_v20-0-2" data-text="ML Kit for Firebase Smart Reply Model version 20.0.2" tabindex="-1">ML Kit for Firebase Smart Reply Model version 20.0.2</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-translate-model_v20-0-2" data-text="ML Kit for Firebase Translate Model version 20.0.2" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.2</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="realtime-database_v18-0-1" data-text="Realtime Database version 18.0.1" tabindex="-1"><span class="notranslate">Realtime Database</span> version 18.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> <li><span class="release-fixed"></span> The SDK now reports the correct version number (via <a href="/docs/reference/android/com/google/firebase/database/FirebaseDatabase#getSdkVersion()%60"><code translate="no" dir="ltr">FirebaseDatabase.getSdkVersion()</code></a>.</li> </ul> <h3 id="bom_v21-1-0" data-text="Firebase Android BoM version 21.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 21.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:18.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:20.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:18.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:20.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:18.1.1</code></li> </ul> </section> <h2 id="2019-07-12" data-text="Update - July 12, 2019" tabindex="-1">Update - July 12, 2019</h2> <h3 id="analytics_v17-0-1" data-text="Analytics version 17.0.1" tabindex="-1"><span class="notranslate">Analytics</span> version 17.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed minor bugs, including an issue where apps reported analytics data with an empty Google app ID.</li> </ul> <h3 id="auth_v18-1-0" data-text="Authentication version 18.1.0" tabindex="-1"><span class="notranslate">Authentication</span> version 18.1.0</h3> <ul> <li><span class="release-feature"></span> Added a new API to retrieve the OAuth secret in <a href="/support/release-notes/docs/reference/android/com/google/firebase/auth/OAuthCredential"><code translate="no" dir="ltr">OAuthCredential</code></a> when signing in with Twitter using web-based Generic OAuth Login. The secret is required to access Twitter APIs. We suggest migrating away from TwitterKit as it has been discontinued.</li> </ul> <h3 id="storage_v18-1-0" data-text="Cloud Storage for Firebase version 18.1.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 18.1.0</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#list(int)"><code translate="no" dir="ltr">StorageReference.list()</code></a> and <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#listAll()"><code translate="no" dir="ltr">StorageReference.listAll()</code></a>, which allows developers to list the files and folders under the given StorageReference.</li> <li><span class="release-changed"></span> Added validation to <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#getDownloadUrl()"><code translate="no" dir="ltr">StorageReference.getDownloadUrl()</code></a> and <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#getMetadata()"><code translate="no" dir="ltr">StorageReference.getMetadata()</code></a> to return an error if the reference is the root of the bucket.</li> </ul> <h3 id="inappmessaging_v18-0-2" data-text="In-App Messaging version 18.0.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 18.0.2</h3> <ul> <li><span class="release-fixed"></span> Updated to send engagement metrics via <span class="notranslate">Analytics</span>.</li> <li><span class="release-fixed"></span> Fixed issue with callbacks triggering for Card templates.</li> </ul> <h3 id="inappmessaging-display_v18-0-2" data-text="In-App Messaging Display version 18.0.2" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 18.0.2</h3> <ul> <li><span class="release-changed"></span> Updated to support Picasso version 2.71828.</li> <li><span class="release-fixed"></span> Updated to send engagement metrics via <span class="notranslate">Analytics</span>.</li> <li><span class="release-fixed"></span> Fixed issue with callbacks triggering for Card templates.</li> </ul> <h3 id="mlkit-common_v20-0-1" data-text="ML Kit for Firebase Common version 20.0.1" tabindex="-1">ML Kit for Firebase Common version 20.0.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-model-interpreter_v20-0-1" data-text="ML Kit for Firebase Model Interpreter version 20.0.1" tabindex="-1">ML Kit for Firebase Model Interpreter version 20.0.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-natural-lang_v20-0-1" data-text="ML Kit for Firebase Natural Language version 20.0.1" tabindex="-1">ML Kit for Firebase Natural Language version 20.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="mlkit-natural-lang-id-model_v20-0-1" data-text="ML Kit for Firebase Language Identification Model version 20.0.1" tabindex="-1">ML Kit for Firebase Language Identification Model version 20.0.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-smart-reply-model_v20-0-1" data-text="ML Kit for Firebase Smart Reply Model version 20.0.1" tabindex="-1">ML Kit for Firebase Smart Reply Model version 20.0.1</h3> <ul> <li><span class="release-changed"></span> Internal improvements to reduce library size and refactored code.</li> </ul> <h3 id="mlkit-translate-model_v20-0-1" data-text="ML Kit for Firebase Translate Model version 20.0.1" tabindex="-1">ML Kit for Firebase Translate Model version 20.0.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-vision_v22-0-0" data-text="ML Kit for Firebase Vision version 22.0.0" tabindex="-1">ML Kit for Firebase Vision version 22.0.0</h3> <ul> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">getEntityId</code> from <a href="/docs/reference/android/com/google/firebase/ml/vision/objects/FirebaseVisionObject"><code translate="no" dir="ltr">FirebaseVisionObject</code></a>.</li> </ul> <h3 id="mlkit-vision-automl_v18-0-0" data-text="ML Kit for Firebase Vision AutoML version 18.0.0" tabindex="-1">ML Kit for Firebase Vision AutoML version 18.0.0</h3> <ul> <li><span class="release-changed"></span> Internal cleanup.</li> </ul> <h3 id="mlkit-obj-detection-tracking-model_v18-0-0" data-text="ML Kit for Firebase Object Detection and Tracking Model version 18.0.0" tabindex="-1">ML Kit for Firebase Object Detection and Tracking Model version 18.0.0</h3> <ul> <li><p><span class="release-fixed"></span> Improved detecting small objects with <a href="/docs/reference/android/com/google/firebase/ml/vision/objects/FirebaseVisionObjectDetector"><code translate="no" dir="ltr">FirebaseVisionObjectDetector</code></a>.</p></li> <li><p><span class="release-fixed"></span> Fixed the known issue where for Android API level 18 and earlier, the object detector recycles <code translate="no" dir="ltr">Bitmap</code> objects passed to it. You no longer need to pass a copy of the <code translate="no" dir="ltr">Bitmap</code>.</p></li> <li><p><span class="release-fixed"></span> Fixed the known issue where in streaming mode, if the category of an object changes, the detector assigns it a new tracking ID.</p></li> </ul> <h3 id="bom_v21-0-0" data-text="Firebase Android BoM version 21.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 21.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:18.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:18.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads-lite:18.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:20.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:20.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:22.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:18.0.0</code></li> </ul> </section> <h2 id="2019-07-10" data-text="Update - July 10, 2019" tabindex="-1">Update - July 10, 2019</h2> <h3 id="firebase-gradle_plugins_v1-3-0" data-text="Firebase Gradle Plugins" tabindex="-1">Firebase Gradle Plugins</h3> <ul> <li><span class="release-changed"></span> <code translate="no" dir="ltr">perf-plugin</code> v1.3.0 — With this release, you can disable the <span class="notranslate">Firebase Performance Monitoring</span> Gradle plugin for a specific <a href="https://developer.android.com/studio/build/build-variants">build variant</a> (including <a href="https://developer.android.com/studio/build/build-variants#build-types">buildTypes</a> or <a href="https://developer.android.com/studio/build/build-variants#product-flavors">productFlavors</a>). For more details, refer to the <a href="/docs/perf-mon/disable-sdk?platform=android#disable-gradle-plugin">disabling <span class="notranslate">Performance Monitoring</span> documentation</a>.</li> </ul> <h2 id="2019-06-27" data-text="Update - June 27, 2019" tabindex="-1">Update - June 27, 2019</h2> <h3 id="google-services_plugin_v4-3-0" data-text="google-services plugin 4.3.0" tabindex="-1">google-services plugin 4.3.0</h3> <ul> <li><span class="release-fixed"></span> Improved stability.</li> <li><span class="release-fixed"></span> Implemented fix for NPE crashes.</li> <li><span class="release-changed"></span> With this release, apply the plugin to top-level apps only; do not apply the plugin to libraries (with the exception of instant apps).</li> <li><span class="release-fixed"></span> Plugin tasks will now correctly be skipped if the google-services file has not changed since last run.</li> </ul> <h3 id="strict-version-matching_plugin_v1-2-0" data-text="strict-version-matching plugin 1.2.0" tabindex="-1">strict-version-matching plugin 1.2.0</h3> <ul> <li><span class="release-fixed"></span> Improved stability.</li> <li><span class="release-fixed"></span> Implemented fix for NPE crashes.</li> </ul> <h2 id="2019-06-24" data-text="Update - June 24, 2019" tabindex="-1">Update - June 24, 2019</h2> <h3 id="firestore_v20-1-0" data-text="Cloud Firestore version 20.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 20.1.0</h3> <ul> <li><span class="release-changed"></span> SSL and gRPC initialization now happens on a separate thread, which reduces the time taken to produce the first query result.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">clearPersistence()</code>, which clears the persistent storage including pending writes and cached documents. This is intended to help write reliable tests. Refer to this <a href="https://github.com/firebase/firebase-js-sdk/issues/449">GitHub issue</a> for more details.</li> </ul> <h4 id="firestore-ktx_v20-1-0" data-text="Cloud Firestore Kotlin extensions version 20.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 20.1.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="messaging_v19-0-1" data-text="Cloud Messaging version 19.0.1" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 19.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <code translate="no" dir="ltr">FirebaseMessagingService.onNewToken</code> would be invoked for tokens created for non-default FirebaseApp instances.</li> <li><span class="release-fixed"></span> SDK now only retries topic subscriptions and token registration on the following errors: &quot;ERROR_SERVICE_NOT_AVAILABLE&quot; and &quot;ERROR_INTERNAL_SERVER_ERROR&quot;.</li> </ul> <h3 id="performance_v18-0-1" data-text="Performance Monitoring version 18.0.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 18.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an <code translate="no" dir="ltr">IllegalStateException</code> that was thrown when an activity with hardware acceleration disabled was stopped.</li> </ul> <h3 id="iid_v19-0-1" data-text="Firebase Instance ID version 19.0.1" tabindex="-1">Firebase Instance ID version 19.0.1</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="bom_v20-1-0" data-text="Firebase Android BoM version 20.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 20.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:20.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:18.0.0</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> </ul> </section> <h2 id="2019-06-20" data-text="Update - June 20, 2019" tabindex="-1">Update - June 20, 2019</h2> <h3 id="inappmessaging_v18-0-1" data-text="In-App Messaging version 18.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 18.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that prevented impressions from getting recorded in certain scenarios when the device is offline.</li> </ul> <h3 id="inappmessaging-display_v18-0-1" data-text="In-App Messaging Display version 18.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 18.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that prevented impressions from getting recorded in certain scenarios when the device is offline.</li> </ul> <h3 id="bom_v20-0-1" data-text="Firebase Android BoM version 20.0.1" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 20.0.1</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:18.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:18.0.0</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> </ul> </section> <h2 id="2019-06-17" data-text="Update - June 17, 2019" tabindex="-1">Update - June 17, 2019</h2> <aside class="warning"><strong>This release is a MAJOR version update and includes breaking changes.</strong><br> With this release, libraries are migrated from the Android Support Libraries to the Jetpack (AndroidX) Libraries.<br> <strong>The updated libraries will not work unless you make the following changes in your app:</strong> <ul> <li>Upgrade <code translate="no" dir="ltr">com.android.tools.build:gradle</code> to v3.2.1 or later.</li> <li>Upgrade <code translate="no" dir="ltr">compileSdkVersion</code> to 28 or later.</li> <li>Update your app to use Jetpack (AndroidX); follow the instructions in <a href="https://developer.android.com/jetpack/androidx/migrate">Migrating to AndroidX</a>.</li> </ul> </aside> <h3 id="all_firebase_sdks_for_android" data-text="All Firebase SDKs for Android" tabindex="-1">All Firebase SDKs for Android</h3> <ul> <li><p><span class="release-changed"></span> The following libraries are updated with this release:</p> <ul> <li>Ads version 18.0.0</li> <li><span class="notranslate">Analytics</span> version 17.0.0</li> <li><span class="notranslate">App Indexing</span> version 19.0.0</li> <li><span class="notranslate">Authentication</span> version 18.0.0</li> <li><span class="notranslate">Cloud Firestore</span> version 20.0.0</li> <li><span class="notranslate">Cloud Firestore</span>-ktx version 20.0.0</li> <li><span class="notranslate">Cloud Functions</span> (client) version 18.0.0</li> <li><span class="notranslate">Cloud Messaging</span> version 19.0.0</li> <li><span class="notranslate">Cloud Storage</span> version 18.0.0</li> <li><span class="notranslate">Dynamic Links</span> version 18.0.0</li> <li><span class="notranslate">In-App Messaging</span> version 18.0.0</li> <li><span class="notranslate">In-App Messaging</span> Display version 18.0.0</li> <li>Instance IDs version 19.0.0</li> <li>ML Kit for Firebase: Common version 20.0.0</li> <li>ML Kit for Firebase: Vision version 21.0.0</li> <li>ML Kit for Firebase: Image Labeling Model version 18.0.0</li> <li>ML Kit for Firebase: Face Detection Model version 18.0.0</li> <li>ML Kit for Firebase: Object Detection and Tracking Model version 17.0.0</li> <li>ML Kit for Firebase: Vision AutoML version 17.0.0</li> <li>ML Kit for Firebase: Natural Language version 20.0.0</li> <li>ML Kit for Firebase: Language Identification Model version 20.0.0</li> <li>ML Kit for Firebase: Smart Reply Model version 20.0.0</li> <li>ML Kit for Firebase: Translate Model version 20.0.0</li> <li>ML Kit for Firebase: Model Interpreter version 20.0.0</li> <li><span class="notranslate">Realtime Database</span> version 18.0.0</li> <li><span class="notranslate">Performance Monitoring</span> version 18.0.0</li> <li><span class="notranslate">Remote Config</span> version 18.0.0</li> <li><span class="notranslate">A/B Testing</span> version 18.0.0</li> </ul></li> </ul> <h3 id="bom_v20-0-0" data-text="Firebase Android BoM version 20.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 20.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:21.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:18.0.0</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> </ul> </section> <h2 id="2019-05-31" data-text="Update - May 31, 2019" tabindex="-1">Update - May 31, 2019</h2> <h3 id="firestore_v19-0-2" data-text="Cloud Firestore version 19.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 19.0.2</h3> <ul> <li><span class="release-fixed"></span> Updated gRPC to 1.21.0. A bug in the prior version would occasionally cause a crash if a network state change occurred concurrently with an RPC. Refer to <a href="https://github.com/firebase/firebase-android-sdk/issues/428">GitHub issue #428</a> for more details.</li> </ul> <h4 id="firestore-ktx_v19-0-2" data-text="Cloud Firestore Kotlin extensions version 19.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 19.0.2</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="bom_v19-0-0" data-text="Firebase Android BoM version 19.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 19.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:16.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:17.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:16.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:19.0.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:17.0.0</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.1</code></li> </ul> </section> <h2 id="2019-05-28" data-text="Update - May 28, 2019" tabindex="-1">Update - May 28, 2019</h2> <h3 id="firestore_v19-0-1" data-text="Cloud Firestore version 19.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 19.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that prevented schema migrations for clients with large offline datasets. Refer to this <a href="https://github.com/firebase/firebase-android-sdk/issues/370">GitHub issue</a> for more details.</li> </ul> <h4 id="firestore-ktx_v19-0-1" data-text="Cloud Firestore Kotlin extensions version 19.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 19.0.1</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="inappmessaging_v17-2-0" data-text="In-App Messaging version 17.2.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 17.2.0</h3> <ul> <li><span class="release-feature"></span> Adds support for card in-app messages.</li> <li><span class="release-feature"></span> Adds direct triggering (via <span class="notranslate">In-App Messaging</span> SDK) of in-app messages.</li> </ul> <h3 id="inappmessaging-display_v17-2-0" data-text="In-App Messaging Display version 17.2.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> Display version 17.2.0</h3> <ul> <li><span class="release-feature"></span> Adds support for card in-app messages.</li> <li><span class="release-feature"></span> Adds direct triggering (via <span class="notranslate">In-App Messaging</span> SDK) of in-app messages.</li> </ul> <h3 id="mlkit-natural-lang_v19-0-1" data-text="ML Kit for Firebase Natural Language version 19.0.1" tabindex="-1">ML Kit for Firebase Natural Language version 19.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug where, under some circumstances, the scheduled timing of a model release could cause performance degradation.</li> </ul> <h3 id="mlkit-natural-lang-id-model_v19-0-1" data-text="ML Kit for Firebase Language Identification Model version 19.0.1" tabindex="-1">ML Kit for Firebase Language Identification Model version 19.0.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-smart-reply-model_v19-0-1" data-text="ML Kit for Firebase Smart Reply Model version 19.0.1" tabindex="-1">ML Kit for Firebase Smart Reply Model version 19.0.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="mlkit-translate-model_v19-0-1" data-text="ML Kit for Firebase Translate Model version 19.0.1" tabindex="-1">ML Kit for Firebase Translate Model version 19.0.1</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="performance_v17-0-2" data-text="Performance Monitoring version 17.0.2" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 17.0.2</h3> <ul> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">Null Pointer Exception</code> that was being observed on certain Android 7.0 devices.</li> <li><span class="release-fixed"></span> Updates to make <span class="notranslate">Performance Monitoring</span> work better with the latest version of <span class="notranslate">Firebase Remote Config</span>.</li> </ul> <h2 id="2019-05-23" data-text="Update - May 23, 2019" tabindex="-1">Update - May 23, 2019</h2> <h3 id="version_2101" data-text="Crashlytics version 2.10.1" tabindex="-1"><span class="notranslate">Crashlytics</span> version 2.10.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a Proguard error that caused some builds to fail:<br> &quot;can&#39;t find referenced class com.crashlytics.android.ndk.CrashlyticsNdk&quot;</li> </ul> <h2 id="2019-05-07" data-text="Update - May 07, 2019" tabindex="-1">Update - May 07, 2019</h2> <aside class="warning"><strong>Breaking changes for this update:</strong> <ul> <li>If you use <span class="notranslate">Firebase Authentication</span>, update to <code translate="no" dir="ltr">firebase-auth</code> v17.0.0 or later to ensure functionality alignment with other updated Firebase libraries.</li> <li>Several libraries updated minSdkVersion to API level 16 to align with the <a href="https://android-developers.googleblog.com/2018/12/google-play-services-discontinuing.html">Google Play services distribution policy</a>.</li> <li>In your project-level <code translate="no" dir="ltr">build.gradle</code> file, make sure to include Google's Maven repository in both your <code translate="no" dir="ltr">buildscript</code> and <code translate="no" dir="ltr">allprojects</code> sections.</li> </ul> </aside> <h3 id="analytics_v16-5-0" data-text="Analytics version 16.5.0" tabindex="-1"><span class="notranslate">Analytics</span> version 16.5.0</h3> <ul> <li><p><span class="release-changed"></span> Adds the ability for an app to specify whether events logged by Google Analytics can be used to personalize ads for the user.</p></li> <li><p><span class="release-changed"></span> Internal changes to ensure compatibility with the <a href="https://android-developers.googleblog.com/2019/11/still-using-installbroadcast-switch-to.html">Play Referrer API</a>.</p></li> <li><p><span class="release-fixed"></span> Fixed an issue leading to an increase in reported sessions.</p></li> </ul> <h3 id="app-indexing_v18-0-0" data-text="App Indexing version 18.0.0" tabindex="-1"><span class="notranslate">App Indexing</span> version 18.0.0</h3> <ul> <li><span class="release-feature"></span> Added new <a href="/docs/reference/android/com/google/firebase/appindexing/builders/AlarmBuilder"><code translate="no" dir="ltr">Alarm</code></a>, <a href="/docs/reference/android/com/google/firebase/appindexing/builders/AlarmInstanceBuilder"><code translate="no" dir="ltr">AlarmInstance</code></a>, <a href="/docs/reference/android/com/google/firebase/appindexing/builders/StopwatchBuilder"><code translate="no" dir="ltr">Stopwatch</code></a>, <a href="/docs/reference/android/com/google/firebase/appindexing/builders/StopwatchLapBuilder"><code translate="no" dir="ltr">StopwatchLapBuilder</code></a>, <a href="/docs/reference/android/com/google/firebase/appindexing/builders/TimerBuilder"><code translate="no" dir="ltr">Timer</code></a>, and <a href="/docs/reference/android/com/google/firebase/appindexing/builders/AssistActionBuilder"><code translate="no" dir="ltr">AssistAction</code></a> builders.</li> </ul> <h3 id="auth_v17-0-0" data-text="Authentication version 17.0.0" tabindex="-1"><span class="notranslate">Authentication</span> version 17.0.0</h3> <ul> <li><p><span class="release-changed"></span> Removed the deprecated <code translate="no" dir="ltr">fetchProvidersForEmail(String)</code> method from the <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuth"><code translate="no" dir="ltr">FirebaseAuth</code></a> class, as well as the associated <code translate="no" dir="ltr">ProviderQueryResult</code> class. Use <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuth#fetchSignInMethodsForEmail(String)"><code translate="no" dir="ltr">fetchSignInMethodsForEmail(String)</code></a> instead.</p></li> <li><p><span class="release-changed"></span> This update of <code translate="no" dir="ltr">firebase-auth</code> is required to use new versions of <code translate="no" dir="ltr">firebase-firestore</code>, <code translate="no" dir="ltr">firebase-functions</code>, <code translate="no" dir="ltr">firebase-storage</code>, and <code translate="no" dir="ltr">firebase-database</code> going forward.</p></li> <li><p><span class="release-changed"></span> Updated minSdkVersion to API level 16.</p></li> </ul> <h3 id="firestore_v19-0-0" data-text="Cloud Firestore version 19.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 19.0.0</h3> <ul> <li><span class="release-feature"></span> You can now query across all collections in your database with a given collection ID using the <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#collectionGroup"><code translate="no" dir="ltr">FirebaseFirestore.collectionGroup()</code></a> method.</li> <li><span class="release-changed"></span> The garbage collection process for on-disk persistence that removes older documents is now enabled by default. The SDK will attempt to periodically clean up older, unused documents once the on-disk cache passes a threshold size (default: 100 MB). See <a href="/docs/firestore/manage-data/enable-offline#configure_cache_size">Configure cache size</a> for details on how to configure this.</li> <li><span class="release-changed"></span> Internal changes that rely on an updated API to obtain authentication credentials. If you use <span class="notranslate">Firebase Authentication</span>, update to <code translate="no" dir="ltr">firebase-auth</code> v17.0.0 or later to ensure functionality alignment.</li> </ul> <h4 id="firestore-ktx_v19-0-0" data-text="Cloud Firestore Kotlin extensions version 19.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions version 19.0.0</h4> <p>The Kotlin extensions library transitively includes the updated <code translate="no" dir="ltr">firebase-firestore</code> library. The Kotlin extensions library has no additional updates.</p> <h3 id="functions-client_v17-0-0" data-text="Cloud Functions for Firebase Client SDK version 17.0.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 17.0.0</h3> <ul> <li><span class="release-changed"></span> Updated minSdkVersion to API level 16.</li> </ul> <h3 id="messaging_v18-0-0" data-text="Cloud Messaging version 18.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 18.0.0</h3> <ul> <li><span class="release-changed"></span> Updated minSdkVersion to API level 16.</li> </ul> <h3 id="storage_v17-0-0" data-text="Cloud Storage for Firebase version 17.0.0" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 17.0.0</h3> <ul> <li><span class="release-changed"></span> Internal changes that rely on an updated API to obtain authentication credentials. If you use <span class="notranslate">Firebase Authentication</span>, update to <code translate="no" dir="ltr">firebase-auth</code> v17.0.0 or later to ensure functionality alignment.</li> </ul> <h3 id="dynamic-links_v16-2-0" data-text="Dynamic Links version 16.2.0" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 16.2.0</h3> <ul> <li><p><span class="release-changed"></span> Refactored code to ensure functionality alignment with other updated Firebase libraries.</p></li> <li><p><span class="release-changed"></span> Updated minSdkVersion to API level 16.</p></li> </ul> <h3 id="version_1612" data-text="Invites version 16.1.2" tabindex="-1"><span class="notranslate">Invites</span> version 16.1.2</h3> <ul> <li><span class="release-changed"></span> Refactored code to facilitate full deprecation.</li> </ul> <h3 id="mlkit-common_v19-0-0" data-text="ML Kit for Firebase Common version 19.0.0" tabindex="-1">ML Kit for Firebase Common version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">getModelName</code>, <code translate="no" dir="ltr">getFilePath</code>, and <code translate="no" dir="ltr">getAssetFilePath</code> from <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseLocalModel"><code translate="no" dir="ltr">FirebaseLocalModel</code></a>.</li> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">getModelName</code>, <code translate="no" dir="ltr">isModelUpdatesEnabled</code>, <code translate="no" dir="ltr">getInitialDownloadConditions</code> and <code translate="no" dir="ltr">getUpdatesDownloadConditions</code> from <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseRemoteModel"><code translate="no" dir="ltr">FirebaseRemoteModel</code></a>.</li> <li><span class="release-changed"></span> Added <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager#downloadRemoteModelIfNeeded(com.google.firebase.ml.common.modeldownload.FirebaseRemoteModel)"><code translate="no" dir="ltr">FirebaseModelManager#downloadRemoteModelIfNeeded</code></a> to trigger the model download and listen to the download task&#39;s success and failure.</li> <li><span class="release-changed"></span> Updated minSdkVersion to API level 16.</li> </ul> <h3 id="mlkit-vision_v20-0-0" data-text="ML Kit for Firebase Vision version 20.0.0" tabindex="-1">ML Kit for Firebase Vision version 20.0.0</h3> <ul> <li><span class="release-changed"></span> Added AutoML image labeler via <a href="/docs/reference/android/com/google/firebase/ml/vision/FirebaseVision#getOnDeviceAutoMLImageLabeler(com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceAutoMLImageLabelerOptions)"><code translate="no" dir="ltr">FirebaseVision#getOnDeviceAutoMLImageLabeler</code></a>.</li> <li><span class="release-changed"></span> Added object detection and tracking API. See <a href="/docs/reference/android/com/google/firebase/ml/vision/objects/FirebaseVisionObjectDetector"><code translate="no" dir="ltr">FirebaseVisionObjectDetector</code></a>.</li> <li><span class="release-changed"></span> Updated minSdkVersion to API level 16.</li> </ul> <h3 id="mlkit-obj-detection-tracking-model_v16-0-0" data-text="ML Kit for Firebase Object Detection and Tracking Model version 16.0.0" tabindex="-1">ML Kit for Firebase Object Detection and Tracking Model version 16.0.0</h3> <ul> <li><span class="release-feature"></span> Initial release of the Object Detection and Tracking Model.</li> </ul> <h3 id="mlkit-natural-lang_v19-0-0" data-text="ML Kit for Firebase Natural Language version 19.0.0" tabindex="-1">ML Kit for Firebase Natural Language version 19.0.0</h3> <ul> <li><span class="release-feature"></span> Initial release of the Translate API. To learn more, refer to the <a href="/docs/ml/translation">ML Kit for Firebase documentation</a>.</li> <li><span class="release-changed"></span> Updated minSdkVersion to API level 16.</li> </ul> <h3 id="mlkit-natural-lang-id-model_v19-0-0" data-text="ML Kit for Firebase Language Identification Model version 19.0.0" tabindex="-1">ML Kit for Firebase Language Identification Model version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Updated minSdkVersion to API level 16.</li> </ul> <h3 id="mlkit-smart-reply-model_v19-0-0" data-text="ML Kit for Firebase Smart Reply Model version 19.0.0" tabindex="-1">ML Kit for Firebase Smart Reply Model version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Updated minSdkVersion to API level 16.</li> </ul> <h3 id="mlkit-translate-model_v19-0-0" data-text="ML Kit for Firebase Translate Model version 19.0.0" tabindex="-1">ML Kit for Firebase Translate Model version 19.0.0</h3> <ul> <li><span class="release-feature"></span> Initial release of the Translate Model. To learn more, refer to the <a href="/docs/ml/translation">ML Kit for Firebase documentation</a>.</li> </ul> <h3 id="mlkit-model-interpreter_v19-0-0" data-text="ML Kit for Firebase Model Interpreter version 19.0.0" tabindex="-1">ML Kit for Firebase Model Interpreter version 19.0.0</h3> <ul> <li><p><span class="release-changed"></span> Updated TFLite version to 1.13.1.</p></li> <li><p><span class="release-changed"></span> Updated minSdkVersion to API level 16.</p></li> </ul> <h3 id="mlkit-vision-automl_v16-0-0" data-text="ML Kit for Firebase Vision AutoML version 16.0.0" tabindex="-1">ML Kit for Firebase Vision AutoML version 16.0.0</h3> <ul> <li><span class="release-feature"></span> Initial release of the Vision AutoML library.</li> </ul> <h3 id="performance_v17-0-0" data-text="Performance Monitoring version 17.0.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 17.0.0</h3> <ul> <li><span class="release-removed"></span> Removed the deprecated counter API. Use metrics API going forward.</li> </ul> <h3 id="realtime-database_v17-0-0" data-text="Realtime Database version 17.0.0" tabindex="-1"><span class="notranslate">Realtime Database</span> version 17.0.0</h3> <ul> <li><span class="release-changed"></span> Internal changes that rely on an updated API to obtain authentication credentials. If you use <span class="notranslate">Firebase Authentication</span>, update to <code translate="no" dir="ltr">firebase-auth</code> v17.0.0 or later to ensure functionality alignment.</li> </ul> <h3 id="remote-config_v17-0-0" data-text="Remote Config version 17.0.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 17.0.0</h3> <ul> <li><p><span class="release-feature"></span> Added an asynchronous way to set config settings: <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setConfigSettingsAsync(FirebaseRemoteConfigSettings)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings)</code></a>.</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigServerException"><code translate="no" dir="ltr">FirebaseRemoteConfigServerException</code></a> and <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigClientException"><code translate="no" dir="ltr">FirebaseRemoteConfigClientException</code></a> to provide more nuanced error reporting.</p></li> <li><p><span class="release-changed"></span> Updated all &quot;cache expiration&quot; references to &quot;minimum fetch interval&quot; and &quot;cache&quot; references to &quot;local storage&quot;.</p></li> <li><p><span class="release-deprecated"></span> Deprecated developer mode. Use <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)"><code translate="no" dir="ltr">FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(0L)</code></a> instead.</p></li> <li><p><span class="release-deprecated"></span> Deprecated the synchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setConfigSettings(FirebaseRemoteConfigSettings)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setConfigSettings(FirebaseRemoteConfigSettings)</code></a>. Use the asynchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setConfigSettingsAsync(FirebaseRemoteConfigSettings)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings)</code></a> instead.</p></li> <li><p><span class="release-deprecated"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigFetchException"><code translate="no" dir="ltr">FirebaseRemoteConfigFetchException</code></a>. Use the more granular <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigServerException"><code translate="no" dir="ltr">FirebaseRemoteConfigServerException</code></a> and <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigClientException"><code translate="no" dir="ltr">FirebaseRemoteConfigClientException</code></a> instead.</p></li> <li><p><span class="release-removed"></span> Removed all namespace methods.</p></li> <li><p><span class="release-removed"></span> Removed all default constructors for Exception classes.</p></li> <li><p><span class="release-changed"></span> Updated minSdkVersion to API level 16.</p></li> </ul> <h3 id="ab-testing_v17-1-1" data-text="A/B Testing version 17.1.1" tabindex="-1"><span class="notranslate">A/B Testing</span> version 17.1.1</h3> <ul> <li><p><span class="release-changed"></span> Updated API to support the latest <span class="notranslate">Remote Config</span> update.</p></li> <li><p><span class="release-changed"></span> Updated minSdkVersion to API level 16.</p></li> </ul> <h3 id="iid_v18-0-0" data-text="Firebase Instance ID version 18.0.0" tabindex="-1">Firebase Instance ID version 18.0.0</h3> <ul> <li><p><span class="release-changed"></span> Removed the deprecated <code translate="no" dir="ltr">FirebaseInstanceIdService</code> class.</p></li> <li><p><span class="release-changed"></span> Updated minSdkVersion to API level 16.</p></li> </ul> <h3 id="firebase-gradle_plugins_2019-05-07" data-text="Firebase Gradle Plugins" tabindex="-1">Firebase Gradle Plugins</h3> <ul> <li><p><span class="release-deprecated"></span> <code translate="no" dir="ltr">firebase-plugins</code> v2.0.0 — With this release, <code translate="no" dir="ltr">firebase-plugins</code> is deprecated and will not include any future updates for <span class="notranslate">Firebase Performance Monitoring</span>.</p> <ul> <li><p>To use <span class="notranslate">Firebase Performance Monitoring</span>, you must <a href="/docs/perf-mon/get-started-android">add <code translate="no" dir="ltr">perf-plugin</code> explicitly</a> rather than adding it via <code translate="no" dir="ltr">firebase-plugins</code>.</p></li> <li><p><span class="notranslate">Firebase Crash Reporting</span> and the associated <code translate="no" dir="ltr">crash-plugin</code> are deprecated. Instead, <a href="/docs/crashlytics/upgrade-from-crash-reporting?platform=android">upgrade to <span class="notranslate">Firebase Crashlytics</span></a> for more powerful, real-time crash analysis and new stability insights.</p></li> </ul></li> <li><p><span class="release-changed"></span> <code translate="no" dir="ltr">perf-plugin</code> v1.2.1 — With this release, you must <a href="/docs/perf-mon/get-started-android">add <code translate="no" dir="ltr">perf-plugin</code> explicitly</a> rather than adding it via <code translate="no" dir="ltr">firebase-plugins</code> (which is now deprecated).</p></li> </ul> <h3 id="bom_v18-0-0" data-text="Firebase Android BoM version 18.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 18.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:16.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:16.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:17.0.0</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.0</code></li> </ul> </section> <h3 id="bom_v18-1-0" data-text="Firebase Android BoM version 18.1.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 18.1.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:16.0.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:16.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:20.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-automl:16.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-object-detection-model:16.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-translate-model:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:19.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:17.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:17.0.0</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.10.0</code></li> </ul> </section> <h2 id="2019-05-03" data-text="Update - May 03, 2019" tabindex="-1">Update - May 03, 2019</h2> <h3 id="crashlytics_v2-10-0" data-text="Crashlytics version 2.10.0" tabindex="-1"><span class="notranslate">Crashlytics</span> version 2.10.0</h3> <ul> <li><span class="release-feature"></span> Added support for <a href="/docs/crashlytics/ndk-reports">NDK crash reporting for Firebase users</a>.</li> </ul> <h2 name="2019-04-05" id="update_-_april_05_2019" data-text="Update - April 05, 2019" tabindex="-1">Update - April 05, 2019</h2> <h3 id="version_1820" data-text="Cloud Firestore version 18.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 18.2.0</h3> <ul> <li><span class="release-unchanged"></span> No changes to the base <code translate="no" dir="ltr">firebase-firestore</code> library.</li> </ul> <h4 id="kotlin_extensions_library_version_1820" data-text="Cloud Firestore Kotlin extensions library version 18.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> Kotlin extensions library version 18.2.0</h4> <ul> <li><span class="release-feature"></span> The beta release of a <span class="notranslate">Cloud Firestore</span> Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base <code translate="no" dir="ltr">firebase-firestore</code> library. To learn more, visit the <a href="/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary"><span class="notranslate">Cloud Firestore</span> KTX documentation</a>.</li> </ul> <h3 id="version_1621" data-text="Authentication version 16.2.1" tabindex="-1"><span class="notranslate">Authentication</span> version 16.2.1</h3> <ul> <li><p><span class="release-fixed"></span> Improved error messages for edge cases where providers had been misconfigured in the <span class="notranslate">Firebase</span> console.</p></li> <li><p><span class="release-fixed"></span> Internal compatibility changes to improve interoperability with different versions of Google Play services.</p></li> </ul> <h3 id="firebase_instance_id_version_1712" data-text="Firebase Instance ID version 17.1.2" tabindex="-1">Firebase Instance ID version 17.1.2</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="version_1760" data-text="Cloud Messaging version 17.6.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 17.6.0</h3> <ul> <li><span class="release-feature"></span> Added functionality to automatically download and show an image in a notification message. Retrieve the image URL set in the message with the <code translate="no" dir="ltr">getImageUrl</code> method in <a href="/docs/reference/android/com/google/firebase/messaging/RemoteMessage.Notification"><code translate="no" dir="ltr">RemoteMessage.Notification</code></a>.</li> </ul> <h3 id="version_1625" data-text="Performance Monitoring version 16.2.5" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 16.2.5</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that was causing apps using multiple processes to throw an <code translate="no" dir="ltr">IllegalStateException</code> in the non-main processes.</li> </ul> <h3 id="version_1650" data-text="Remote Config version 16.5.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 16.5.0</h3> <ul> <li><p><span class="release-feature"></span> Enabled multi-App support. Use <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#getInstance(FirebaseApp)"><code translate="no" dir="ltr">FirebaseRemoteConfig.getInstance(FirebaseApp)</code></a> to retrieve a singleton instance of <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig"><code translate="no" dir="ltr">FirebaseRemoteConfig</code></a> for the given <a href="/docs/reference/android/com/google/firebase/FirebaseApp"><code translate="no" dir="ltr">FirebaseApp</code></a>.</p></li> <li><p><span class="release-feature"></span> Added a method that fetches configs and activates them: <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#fetchAndActivate()"><code translate="no" dir="ltr">FirebaseRemoteConfig.fetchAndActivate()</code></a>.</p></li> <li><p><span class="release-feature"></span> Network connection timeout for fetch requests is now customizable. To set the network timeout, use <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder#setFetchTimeoutInSeconds(long)"><code translate="no" dir="ltr">FirebaseRemoteConfigSettings.Builder.setFetchTimeoutInSeconds(long)</code></a>.</p></li> <li><p><span class="release-feature"></span> The default minimum fetch interval is now customizable. To set the default minimum fetch interval, use <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)"><code translate="no" dir="ltr">FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)</code></a>.</p></li> <li><p><span class="release-feature"></span> Added a way to get all activated configs as a Java <code translate="no" dir="ltr">Map</code>: <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#getAll()"><code translate="no" dir="ltr">FirebaseRemoteConfig.getAll()</code></a>.</p></li> <li><p><span class="release-feature"></span> Added the ability to reset a Firebase Remote Config instance: <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#reset()"><code translate="no" dir="ltr">FirebaseRemoteConfig.reset()</code></a>.</p></li> <li><p><span class="release-feature"></span> Added a way to determine if the Firebase Remote Config instance has finished initializing. To get a task that will complete when the Firebase Remote Config instance is finished initializing, use <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#ensureInitialized()"><code translate="no" dir="ltr">FirebaseRemoteConfig.ensureInitialized()</code></a>.</p></li> <li><p><span class="release-feature"></span> Added an asynchronous way to activate configs: <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#activate()"><code translate="no" dir="ltr">FirebaseRemoteConfig.activate()</code></a>.</p></li> <li><p><span class="release-feature"></span> Added an asynchronous way to set defaults: <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(int)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaultsAsync(int)</code></a> and <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(Map%3CString,Object%3E)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaultsAsync(Map&lt;String,Object&gt;)</code></a>.</p></li> <li><p><span class="release-deprecated"></span> Deprecated the synchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#activateFetched()"><code translate="no" dir="ltr">FirebaseRemoteConfig.activateFetched()</code></a>. Use the asynchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#activate()"><code translate="no" dir="ltr">FirebaseRemoteConfig.activate()</code></a> instead.</p></li> <li><p><span class="release-deprecated"></span> Deprecated the synchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaults(int)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaults(int)</code></a> and <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefalts(Map%3CString,Object%3E)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaults(Map&lt;String,Object&gt;)</code></a>. Use the asynchronous <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(int)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaultsAsync(int)</code></a> and <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(Map%3CString,Object%3E)"><code translate="no" dir="ltr">FirebaseRemoteConfig.setDefaultsAsync(Map&lt;String,Object&gt;)</code></a> instead.</p></li> <li><p><span class="release-deprecated"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#getByteArray(String)"><code translate="no" dir="ltr">FirebaseRemoteConfig.getByteArray(String)</code></a>.</p></li> <li><p><span class="release-deprecated"></span> Deprecated all methods with a namespace parameter.</p></li> </ul> <h2 id="2019-04-02" data-text="Update - April 02, 2019" tabindex="-1">Update - April 02, 2019</h2> <h3 id="bom_v17-0-0" data-text="Firebase Android BoM version 17.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 17.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:16.0.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:16.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:16.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:16.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:17.5.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:16.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash:16.2.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:16.1.8</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-invites:16.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:17.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:19.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-face-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:18.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:18.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-smart-reply-model:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:18.0.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:16.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:16.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:16.4.1</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.9.9</code></li> </ul> </section> <h2 name="2019-03-27" id="update_-_march_27_2019" data-text="Update - March 27, 2019" tabindex="-1">Update - March 27, 2019</h2> <h3 id="firebase_instance_id_version_1711" data-text="Firebase Instance ID version 17.1.1" tabindex="-1">Firebase Instance ID version 17.1.1</h3> <ul> <li><span class="release-changed"></span> Added internal improvements and refactored code.</li> </ul> <h3 id="version_1711" data-text="In-App Messaging version 17.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 17.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed <span class="notranslate">Cloud Firestore</span> and <span class="notranslate">In-App Messaging</span> compatibility on Android API level 19 (KitKat). The underlying issue was that <span class="notranslate">Cloud Firestore</span> and <span class="notranslate">Cloud Functions</span> couldn&#39;t agree on which ciphers to use; this update fixes this issue by overriding the set of ciphers that they use. Refer to <a href="https://github.com/firebase/firebase-android-sdk/issues/244">GitHub issue 244</a> for more information.</li> </ul> <h3 id="-display_version_1711" data-text="In-App Messaging-display version 17.1.1" tabindex="-1"><span class="notranslate">In-App Messaging</span>-display version 17.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed <span class="notranslate">Cloud Firestore</span> and <span class="notranslate">In-App Messaging</span> compatibility on Android API level 19 (KitKat). The underlying issue was that <span class="notranslate">Cloud Firestore</span> and <span class="notranslate">Cloud Functions</span> couldn&#39;t agree on which ciphers to use; this update fixes this issue by overriding the set of ciphers that they use. Refer to <a href="https://github.com/firebase/firebase-android-sdk/issues/244">GitHub issue 244</a> for more information.</li> </ul> <h3 id="version_1820" data-text="Cloud Firestore version 18.2.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 18.2.0</h3> <ul> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/firestore/FieldValue#increment(double)"><code translate="no" dir="ltr">FieldValue.increment()</code></a>, which can be used in <code translate="no" dir="ltr">update()</code> and <code translate="no" dir="ltr">set(..., SetOptions.merge())</code> to increment or decrement numeric field values safely without transactions.</p></li> <li><p><span class="release-feature"></span> Added functional interface <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runBatch(%20com.google.firebase.firestore.WriteBatch.Function)"><code translate="no" dir="ltr">FirebaseFirestore.runBatch()</code></a>, similar to <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runTransaction(com.google.firebase.firestore.Transaction.Function%3CTResult%3E%20)"><code translate="no" dir="ltr">FirebaseFirestore.runTransaction()</code></a>, which allows a developer to focus on the mutations of the batch rather than on creating and committing the batch.</p></li> <li><p><span class="release-changed"></span> Prepared the persistence layer to support collection group queries. While this feature is not yet available, all schema changes are included in this release.</p></li> <li><p><span class="release-changed"></span> Added <code translate="no" dir="ltr">@RestrictTo</code> annotations to discourage the use of APIs that are not public. This affects internal APIs that were previously obfuscated and are not mentioned in our documentation.</p></li> <li><p><span class="release-changed"></span> Improved error messages for certain Number types that are not supported by our serialization layer.</p></li> </ul> <h3 id="version_1750" data-text="Cloud Messaging version 17.5.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 17.5.0</h3> <ul> <li><span class="release-changed"></span> Added internal improvements and refactored code.</li> </ul> <h3 id="ml_kit_for_firebase_common_version_1700" data-text="ML Kit for Firebase Common version 17.0.0" tabindex="-1">ML Kit for Firebase Common version 17.0.0</h3> <ul> <li><span class="release-changed"></span> Renamed <code translate="no" dir="ltr">FirebaseCloudModelSource</code> class to <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseRemoteModel"><code translate="no" dir="ltr">FirebaseRemoteModel</code></a> class.</li> <li><span class="release-changed"></span> Renamed <code translate="no" dir="ltr">FirebaseLocalModelSource</code> class to <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseLocalModel"><code translate="no" dir="ltr">FirebaseLocalModel</code></a> class.</li> <li><span class="release-changed"></span> Renamed <code translate="no" dir="ltr">registerCloudModelSource()</code> to <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager#registerRemoteModel(com.google.firebase.ml.common.modeldownload.FirebaseRemoteModel)"><code translate="no" dir="ltr">registerRemoteModel()</code></a> in <code translate="no" dir="ltr">FirebaseModelManager</code></li> <li><span class="release-changed"></span> Renamed <code translate="no" dir="ltr">registerLocalModelSource()</code> to <a href="/docs/reference/android/com/google/firebase/ml/common/modeldownload/FirebaseModelManager#registerLocalModel(com.google.firebase.ml.common.modeldownload.FirebaseLocalModel)"><code translate="no" dir="ltr">registerLocalModel()</code></a> in <code translate="no" dir="ltr">FirebaseModelManager</code></li> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">getCloudModelSource()</code> in <code translate="no" dir="ltr">FirebaseModelManager</code></li> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">getLocalModelSource()</code> in <code translate="no" dir="ltr">FirebaseModelManager</code></li> </ul> <h3 id="ml_kit_for_firebase_model_interpreter_version_1800" data-text="ML Kit for Firebase Model Interpreter version 18.0.0" tabindex="-1">ML Kit for Firebase Model Interpreter version 18.0.0</h3> <ul> <li><span class="release-changed"></span> Renamed <code translate="no" dir="ltr">setCloudModelName</code> to <a href="/docs/reference/android/com/google/firebase/ml/custom/FirebaseModelOptions.Builder#setRemoteModelName(java.lang.String)"><code translate="no" dir="ltr">setRemoteModelName</code></a> in <code translate="no" dir="ltr">FirebaseModelOptions</code>.</li> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">getCloudModelName()</code> method in <code translate="no" dir="ltr">FirebaseModelOptions</code>.</li> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">getLocalModelName()</code> method in <code translate="no" dir="ltr">FirebaseModelOptions</code>.</li> </ul> <h3 id="ml_kit_for_firebase_natural_language_version_1820" data-text="ML Kit for Firebase Natural Language version 18.2.0" tabindex="-1">ML Kit for Firebase Natural Language version 18.2.0</h3> <ul> <li><span class="release-feature"></span> Initial release of the Smart Reply API. To learn more, refer to the <a href="/docs/ml/generate-smart-replies">ML Kit for Firebase documentation</a>.</li> </ul> <h3 id="ml_kit_for_firebase_natural_language_identification_model_version_1803" data-text="ML Kit for Firebase Natural Language Identification Model version 18.0.3" tabindex="-1">ML Kit for Firebase Natural Language Identification Model version 18.0.3</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="ml_kit_for_firebase_smart_reply_model_version_1800" data-text="ML Kit for Firebase Smart Reply Model version 18.0.0" tabindex="-1">ML Kit for Firebase Smart Reply Model version 18.0.0</h3> <ul> <li><span class="release-feature"></span> Initial release of the Smart Reply Model.</li> </ul> <h3 id="ml_kit_for_firebase_vision_version_1903" data-text="ML Kit for Firebase Vision version 19.0.3" tabindex="-1">ML Kit for Firebase Vision version 19.0.3</h3> <ul> <li>No changes from previous version</li> </ul> <h3 id="version_1641" data-text="Remote Config version 16.4.1" tabindex="-1"><span class="notranslate">Remote Config</span> version 16.4.1</h3> <ul> <li><span class="release-changed"></span> The SDK now enforces Android API Key restrictions.</li> <li><span class="release-fixed"></span> Resolved known issue where the local cache was not honored even if it had not expired. The issue was introduced in version 16.3.0.</li> </ul> <h3 id="firebase_gradle_plugins_version_120" data-text="Firebase Gradle Plugins version 1.2.0" tabindex="-1">Firebase Gradle Plugins version 1.2.0</h3> <ul> <li><p><span class="release-changed"></span> Updates to the Firebase Gradle Plugins (<code translate="no" dir="ltr">firebase-plugins</code> and <code translate="no" dir="ltr">perf-plugin</code>) for Android Studio 3.x are now available.</p> <p>This release:</p> <ul> <li>Provides support for <code translate="no" dir="ltr">JDK 11</code> with ASM API upgrade to &quot;7.0&quot;.</li> <li>Fixes an issue with build failure when the transform is applied but disabled.</li> <li>Removes the requirement that the <span class="notranslate">Firebase Performance Monitoring</span> plugin must be listed after the Android application plugin for it to work.</li> <li>Improves the build performance by disabling the instrumentation and making it non-operational when the project property flag <code translate="no" dir="ltr">firebasePerformanceInstrumentationEnabled = false</code> is specified in the <code translate="no" dir="ltr">gradle.properties</code> file.</li> </ul></li> </ul> <h2 name="2019-03-15" id="update_-_march_15_2019" data-text="Update - March 15, 2019" tabindex="-1">Update - March 15, 2019</h2> <h3 id="bom_v16-0-0" data-text="Firebase Android BoM version 16.0.0" tabindex="-1"><span class="notranslate">Firebase Android BoM</span> version 16.0.0</h3> <section class="expandable"> <p class="showalways"> Firebase Android SDKs mapped to this <span class="notranslate">BoM</span> version:</p> <ul> <li><code translate="no" dir="ltr">com.google.firebase:firebase-core:16.0.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ads:17.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics:16.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-auth:16.2.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-firestore:18.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-functions:16.3.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging:17.4.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-storage:16.1.0</code></li> <li><code translate="no" dir="ltr">com.crashlytics.sdk.android:crashlytics:2.9.9</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links:16.1.7</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-inappmessaging-display:17.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-model-interpreter:17.0.3</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language:18.1.1</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-natural-language-language-id-model:18.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision:19.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-ml-vision-image-label-model:17.0.2</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-perf:16.2.4</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-database:16.1.0</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-config:16.4.0</code></li> </ul> </section> <h3 id="version_1630" data-text="Cloud Functions for Firebase Client SDK version 16.3.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 16.3.0</h3> <ul> <li><p><span class="release-changed"></span> Changed the default timeout for callable functions to 70 seconds (<a href="//github.com/firebase/firebase-android-sdk/pull/224">#2329</a>).</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/functions/HttpsCallableReference"><code translate="no" dir="ltr">setTimeout</code></a> and <a href="/docs/reference/android/com/google/firebase/functions/HttpsCallableReference"><code translate="no" dir="ltr">withTimeout</code></a> methods to change the timeout for a callable (<a href="//github.com/firebase/firebase-android-sdk/pull/224">#2329</a>).</p></li> </ul> <h3 id="version_1640" data-text="Analytics version 16.4.0" tabindex="-1"><span class="notranslate">Analytics</span> version 16.4.0</h3> <ul> <li><span class="release-changed"></span> Updates to improve communications with other Firebase SDKs.</li> </ul> <p><br> The following Firebase Android SDKs have been updated with internal changes to ensure functionality alignment with other SDK releases.</p> <ul> <li><span class="release-changed"></span> Firebase core version 16.0.8</li> <li><span class="release-changed"></span> Dynamic Links version 16.1.8</li> <li><span class="release-changed"></span> Invites version 16.1.1</li> </ul> <h2 id="2019-03-13" data-text="Update - March 13, 2019" tabindex="-1">Update - March 13, 2019</h2> <h3 id="ads_version_1720" data-text="Ads version 17.2.0" tabindex="-1">Ads version 17.2.0</h3> <ul> <li><span class="release-changed"></span> Updates to the Google Mobile Ads Android SDK and Firebase Ads SDK. Refer to the product <a href="https://developers.google.com/admob/android/rel-notes#17.2.0">release notes</a>.</li> </ul> <h2 name="2019-03-11" id="update_-_march_11_2019" data-text="Update - March 11, 2019" tabindex="-1">Update - March 11, 2019</h2> <h3 id="version_1620" data-text="Authentication version 16.2.0" tabindex="-1"><span class="notranslate">Authentication</span> version 16.2.0</h3> <ul> <li><p><span class="release-feature"></span> Added an API to allow sign-in via a web-based flow for Generic OAuth providers.</p></li> <li><p><span class="release-fixed"></span> Improved some error messages and fixed a rare timeout bug.</p></li> </ul> <h3 id="version_1624" data-text="Performance Monitoring version 16.2.4" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 16.2.4</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that was causing a <code translate="no" dir="ltr">NoClassDefFoundError</code> to be thrown which resulted in intermittent app crashes.</li> <li><span class="release-fixed"></span> Updates to make <span class="notranslate">Performance Monitoring</span> work better with the latest version of <span class="notranslate">Firebase Remote Config</span>.</li> <li><span class="release-changed"></span> <span class="notranslate">Firebase Performance Monitoring</span> no longer depends on <span class="notranslate">Google Analytics</span>.</li> </ul> <h3 id="version_1640" data-text="Remote Config version 16.4.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 16.4.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h2 name="2019-02-26" id="update_-_february_26_2019" data-text="Update - February 26, 2019" tabindex="-1">Update - February 26, 2019</h2> <h3 id="version_1810" data-text="Cloud Firestore version 18.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 18.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> <li><span class="release-fixed"></span> Fixed calculation of SQLite database size on Android 9 Pie devices. On these devices, the previous method sometimes incorrectly calculated the size by a few MBs, potentially delaying garbage collection.</li> </ul> <h3 id="firebase_instance_id_version_1710" data-text="Firebase Instance ID version 17.1.0" tabindex="-1">Firebase Instance ID version 17.1.0</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="version_1710" data-text="In-App Messaging version 17.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 17.1.0</h3> <ul> <li><span class="release-feature"></span> Adds functionality to programmatically register listeners for updates on in-app engagement (for example, impression, click, display errors). See <a href="/docs/reference/android/com/google/firebase/inappmessaging/FirebaseInAppMessaging.addClickListener()"><code translate="no" dir="ltr">FirebaseInAppMessaging.addClickListener()</code></a> for more details.</li> </ul> <h3 id="-display_version_1710" data-text="In-App Messaging-display version 17.1.0" tabindex="-1"><span class="notranslate">In-App Messaging</span>-display version 17.1.0</h3> <ul> <li><span class="release-feature"></span> Adds functionality to programmatically register listeners for updates on in-app engagement (for example, impression, click, display errors). See <a href="/docs/reference/android/com/google/firebase/inappmessaging/FirebaseInAppMessaging.addClickListener()"><code translate="no" dir="ltr">FirebaseInAppMessaging.addClickListener()</code></a> for more details.</li> </ul> <h3 id="version_1740" data-text="Cloud Messaging version 17.4.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 17.4.0</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">getChannelId</code> method to <a href="/docs/reference/android/com/google/firebase/messaging/RemoteMessage.Notification"><code translate="no" dir="ltr">RemoteMessage.Notification</code></a> for getting the channel ID set in a notification message.</li> <li><span class="release-fixed"></span> Fixed a rare <code translate="no" dir="ltr">ClassCastException</code> while receiving a message.</li> </ul> <p><br> The following Firebase Android SDKs have been updated with internal changes to ensure functionality alignment with other SDK releases.</p> <ul> <li><span class="release-changed"></span> Firebase Common version 16.1.0</li> <li><span class="release-changed"></span> <span class="notranslate">Realtime Database</span> version 16.1.0</li> <li><span class="release-changed"></span> <span class="notranslate">Cloud Storage</span> version 16.1.0</li> <li><span class="release-changed"></span> <span class="notranslate">Cloud Functions</span> version 16.2.0</li> </ul> <h2 id="2019-02-08" data-text="Update - February 08, 2019" tabindex="-1">Update - February 08, 2019</h2> <h3 id="crashlytics_v2-9-9" data-text="Crashlytics version 2.9.9" tabindex="-1"><span class="notranslate">Crashlytics</span> version 2.9.9</h3> <ul> <li><p><span class="release-fixed"></span> Fixed bug that sometimes prevented <span class="notranslate">Analytics</span> events from being automatically written to <span class="notranslate">Crashlytics</span> logs as &quot;breadcrumbs&quot;.</p></li> <li><p><span class="release-fixed"></span> Improved logging output when <span class="notranslate">Crashlytics</span> fails to initialize due to missing build tools.</p></li> <li><p><span class="release-changed"></span> Updated Fabric dependency to 1.4.8</p></li> </ul> <h2 name="2019-02-07" id="update_-_february_7_2019" data-text="Update - February 7, 2019" tabindex="-1">Update - February 7, 2019</h2> <h3 id="version_1710" data-text="A/B Testing version 17.1.0" tabindex="-1"><span class="notranslate">A/B Testing</span> version 17.1.0</h3> <ul> <li><span class="release-changed"></span> Updated API to support the latest <span class="notranslate">Remote Config</span> update.</li> </ul> <h3 id="version_1610" data-text="Invites version 16.1.0" tabindex="-1"><span class="notranslate">Invites</span> version 16.1.0</h3> <ul> <li><span class="release-deprecated"></span> <span class="notranslate">Firebase Invites</span> is now deprecated. For more details and information about migrating to other Firebase products, refer to the <a href="https://firebase.google.com/docs/invites/deprecation"><span class="notranslate">Invites</span> migration page</a>.</li> </ul> <h3 id="version_1801" data-text="Cloud Firestore version 18.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 18.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <span class="notranslate">Cloud Firestore</span> would crash if handling write batches larger than 2 MB in size.</li> <li><span class="release-changed"></span> <span class="notranslate">Cloud Firestore</span> now recovers more quickly from long periods without network access.</li> </ul> <h3 id="version_1617" data-text="Dynamic Links version 16.1.7" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 16.1.7</h3> <ul> <li>Internal refactor.</li> </ul> <h3 id="version_1630" data-text="Remote Config version 16.3.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 16.3.0</h3> <ul> <li><p><span class="release-changed"></span> The <span class="notranslate">Firebase Remote Config</span> SDK requires the <span class="notranslate">Firebase Remote Config</span> REST API. For Firebase projects created before March 7, 2018, you must manually enable the REST API. For more information, see our <a href="https://firebase.google.com/docs/remote-config/use-config-rest#before_you_begin_enable_the_rest_api"><span class="notranslate">Remote Config</span> REST API user guide</a>.</p></li> <li><p><span class="release-changed"></span> Refactored the implementation of <span class="notranslate">Remote Config</span> to improve SDK stability and speed, and to remove the Google Play Services dependency.</p></li> <li><p><span class="release-changed"></span> Improved error logs and exception messages.</p></li> <li><p><span class="release-changed"></span> Updated the Android documentation to reflect that <span class="notranslate">Remote Config</span> uses <code translate="no" dir="ltr">Locale</code> to retrieve location information, similar to iOS&#39;s use of <code translate="no" dir="ltr">countryCode</code>.</p></li> </ul> <h2 name="2019-01-31" id="update_-_january_31_2019" data-text="Update - January 31, 2019" tabindex="-1">Update - January 31, 2019</h2> <h3 id="ml_kit_for_firebase_natural_language_version_1811" data-text="ML Kit for Firebase Natural Language version 18.1.1" tabindex="-1">ML Kit for Firebase Natural Language version 18.1.1</h3> <ul> <li><span class="release-feature"></span> Initial release with support for the Language Identification API.</li> </ul> <h3 id="ml_kit_for_firebase_natural_language_identification_model_version_1802" data-text="ML Kit for Firebase Natural Language Identification Model version 18.0.2" tabindex="-1">ML Kit for Firebase Natural Language Identification Model version 18.0.2</h3> <ul> <li><span class="release-feature"></span> Initial release of the Language Identification Model.</li> </ul> <h3 id="ml_kit_for_firebase_common_version_1623" data-text="ML Kit for Firebase Common version 16.2.3" tabindex="-1">ML Kit for Firebase Common version 16.2.3</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="ml_kit_for_firebase_model_interpreter_version_1703" data-text="ML Kit for Firebase Model Interpreter version 17.0.3" tabindex="-1">ML Kit for Firebase Model Interpreter version 17.0.3</h3> <ul> <li><span class="release-unchanged"></span> Versioned only to ensure compatibility with other ML Kit for Firebase SDKs released simultaneously.</li> </ul> <h3 id="ml_kit_for_firebase_vision_version_1902" data-text="ML Kit for Firebase Vision version 19.0.2" tabindex="-1">ML Kit for Firebase Vision version 19.0.2</h3> <ul> <li>No changes from previous version</li> </ul> <h3 id="firebase_core_version_1607" data-text="Firebase Core version 16.0.7" tabindex="-1">Firebase Core version 16.0.7</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h3 id="version_1630" data-text="Analytics version 16.3.0" tabindex="-1"><span class="notranslate">Analytics</span> version 16.3.0</h3> <ul> <li><span class="release-changed"></span> This release adds the ability for an app to specify that an event logged while the app is in the background should be part of the current session and that the session should be prolonged. Sessions now begin when the app is foregrounded, and the setMinimumSessionDuration method is now deprecated.</li> </ul> <h3 id="ads_version_1713" data-text="Ads version 17.1.3" tabindex="-1">Ads version 17.1.3</h3> <ul> <li><span class="release-changed"></span> Internal changes to ensure functionality alignment with other SDK releases.</li> </ul> <h2 name="2019-01-30" id="update_-_january_30_2019" data-text="Update - January 30, 2019" tabindex="-1">Update - January 30, 2019</h2> <h3 id="ml_kit_for_firebase_common_version_1621" data-text="ML Kit for Firebase Common version 16.2.1" tabindex="-1">ML Kit for Firebase Common version 16.2.1</h3> <ul> <li><span class="release-changed"></span> Added the <code translate="no" dir="ltr">FirebaseModelManager</code> class for downloading and managing custom models from the cloud. The class was previously defined under package <code translate="no" dir="ltr">com.google.firebase.ml.custom</code>.</li> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">FirebaseCloudModelSource</code> and <code translate="no" dir="ltr">FirebaseLocalModelSource</code> classes for defining and registering custom cloud and local models. The classes were previously defined under package <code translate="no" dir="ltr">com.google.firebase.ml.custom.model</code>.</li> </ul> <h3 id="ml_kit_for_firebase_model_interpreter_version_1701" data-text="ML Kit for Firebase Model Interpreter version 17.0.1" tabindex="-1">ML Kit for Firebase Model Interpreter version 17.0.1</h3> <ul> <li><p><span class="release-changed"></span> Moved the <code translate="no" dir="ltr">FirebaseCloudModelSource</code> and <code translate="no" dir="ltr">FirebaseLocalModelSource</code> classes for defining and registering custom models to package <code translate="no" dir="ltr">com.google.firebase.ml.common.modeldownload</code>.</p></li> <li><p><span class="release-changed"></span> Upgraded TensorFlowLite dependency from 1.10.1 to 1.12.0.</p></li> </ul> <h3 id="ml_kit_for_firebase_vision_version_1900" data-text="ML Kit for Firebase Vision version 19.0.0" tabindex="-1">ML Kit for Firebase Vision version 19.0.0</h3> <ul> <li><span class="release-changed"></span> Unified and enhanced on-device and cloud Image Labeling API.</li> </ul> <h2 name="2019-01-25" id="update_-_january_25_2019" data-text="Update - January 25, 2019" tabindex="-1">Update - January 25, 2019</h2> <h3 id="version_1606" data-text="Realtime Database version 16.0.6" tabindex="-1"><span class="notranslate">Realtime Database</span> version 16.0.6</h3> <ul> <li><span class="release-fixed"></span> Fixed a potential <code translate="no" dir="ltr">NullPointerException</code> calling method <code translate="no" dir="ltr">java.lang.String.toLowerCase</code>. (https://github.com/firebase/firebase-android-sdk/issues/179)</li> </ul> <h3 id="version_1800" data-text="Cloud Firestore version 18.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 18.0.0</h3> <ul> <li><span class="release-changed"></span> The <code translate="no" dir="ltr">timestampsInSnapshotsEnabled</code> setting is now enabled by default. Timestamp fields that read from a <code translate="no" dir="ltr">DocumentSnapshot</code> are now returned as <code translate="no" dir="ltr">Timestamp</code> objects instead of <code translate="no" dir="ltr">Date</code> objects. This is a breaking change; developers must update any code that expects to receive a <code translate="no" dir="ltr">Date</code> object. See <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings.Builder#setTimestampsInSnapshotsEnabled(boolean)"><code translate="no" dir="ltr">FirebaseFirestoreSettings.Builder.setTimestampsInSnapshotsEnabled()</code></a> for more details.</li> <li><span class="release-feature"></span> Custom objects (POJOs) can now be passed in several ways: as a field value in <code translate="no" dir="ltr">update()</code>, within <code translate="no" dir="ltr">Map&lt;&gt;</code> objects passed to <code translate="no" dir="ltr">set()</code>, in array transform operations, and in query filters.</li> <li><span class="release-feature"></span> <code translate="no" dir="ltr">DocumentSnapshot.get()</code> now supports retrieving fields as custom objects (POJOs) by passing a <code translate="no" dir="ltr">Class&lt;T&gt;</code> instance, e.g., <code translate="no" dir="ltr">snapshot.get(&quot;field&quot;, CustomType.class)</code>.</li> <li><span class="release-fixed"></span> Fixed an issue where if an app sent a write to the server, but the app was shut down before a listener received the write, the app could crash.</li> </ul> <h3 id="version_1705" data-text="In-App Messaging version 17.0.5" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 17.0.5</h3> <ul> <li><span class="release-fixed"></span> Users with restricted API keys can now use the SDK as expected.</li> </ul> <h3 id="-display_version_1705" data-text="In-App Messaging-display version 17.0.5" tabindex="-1"><span class="notranslate">In-App Messaging</span>-display version 17.0.5</h3> <ul> <li><span class="release-fixed"></span> Users with restricted API keys can now use the SDK as expected.</li> </ul> <h2 name="2019-01-09" id="update_-_january_09_2019" data-text="Update - January 09, 2019" tabindex="-1">Update - January 09, 2019</h2> <h3 id="version_1613" data-text="Remote Config version 16.1.3" tabindex="-1"><span class="notranslate">Remote Config</span> version 16.1.3</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <span class="notranslate">Remote Config</span> experiments were not collecting results.</li> </ul> <h2 name="2018-12-22" id="update_-_december_22_2018" data-text="Update - December 22, 2018" tabindex="-1">Update - December 22, 2018</h2> <h3 id="crashlytics_v2-9-8" data-text="Crashlytics version 2.9.8" tabindex="-1"><span class="notranslate">Crashlytics</span> version 2.9.8</h3> <ul> <li><span class="release-fixed"></span> Fixed bug with <code translate="no" dir="ltr">firebase_crashlytics_collection_enabled</code> flag that erroneously disabled data collection under some circumstances.</li> </ul> <h2 name="2018-12-19" id="update_-_december_19_2018" data-text="Update - December 19, 2018" tabindex="-1">Update - December 19, 2018</h2> <h3 id="version_1715" data-text="Cloud Firestore version 17.1.5" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.1.5</h3> <ul> <li><span class="release-changed"></span> <span class="notranslate">Cloud Firestore</span> now recovers more quickly from bad network states.</li> <li><span class="release-changed"></span> Improved performance for reading large collections.</li> <li><span class="release-fixed"></span> Offline persistence now properly records schema downgrades. This is a forward-looking change that allows you to safely downgrade from future SDK versions to this version (v17.1.5). You can already safely downgrade versions now depending on the source version. For example, you can safely downgrade from v17.1.4 to v17.1.2 because there are no schema changes between those versions. Related: https://github.com/firebase/firebase-android-sdk/issues/134</li> </ul> <h3 id="version_1623" data-text="Performance Monitoring version 16.2.3" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 16.2.3</h3> <ul> <li><span class="release-fixed"></span> Bug fixes.</li> </ul> <h2 name="2018-12-06" id="update_-_december_06_2018" data-text="Update - December 06, 2018" tabindex="-1">Update - December 06, 2018</h2> <h3 id="version_1610" data-text="Authentication version 16.1.0" tabindex="-1"><span class="notranslate">Authentication</span> version 16.1.0</h3> <ul> <li><p><span class="release-feature"></span> Added an API to customize the dynamic link domain that is used in out-of-band email action flows.</p></li> <li><p><span class="release-fixed"></span> Bug fixes and internal improvements.</p></li> </ul> <h3 id="version_1714" data-text="Cloud Firestore version 17.1.4" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.1.4</h3> <ul> <li><span class="release-fixed"></span> Fixed a SQLite transaction-handling issue that occasionally masked exceptions when Firestore closed a transaction that was never started. For more information, see the <a href="https://github.com/firebase/firebase-android-sdk/issues/115">issue report in GitHub</a>.</li> <li><span class="release-fixed"></span> Fixed a race condition that caused a <code translate="no" dir="ltr">SQLiteDatabaseLockedException</code> when an app attempted to access the SQLite database from multiple threads.</li> </ul> <h2 name="2018-12-03" id="update_-_december_03_2018" data-text="Update - December 03, 2018" tabindex="-1">Update - December 03, 2018</h2> <p>The following Firebase Android SDKs have been updated to support internal refactoring and bug fixes:</p> <ul> <li><span class="release-fixed"></span> <span class="notranslate">Analytics</span> version 16.0.6</li> <li><span class="release-fixed"></span> <span class="notranslate">Dynamic Links</span> version 16.1.5</li> <li><span class="release-fixed"></span> <span class="notranslate">Google Ads</span> version 17.1.2</li> <li><span class="release-fixed"></span> <span class="notranslate">Invites</span> version 16.0.6</li> <li><span class="release-fixed"></span> <span class="notranslate">Performance Monitoring</span> version 16.2.2</li> <li><span class="release-fixed"></span> <span class="notranslate">Remote Config</span> version 16.1.2</li> </ul> <h2 name="2018-11-29" id="update_-_november_29_2018" data-text="Update - November 29, 2018" tabindex="-1">Update - November 29, 2018</h2> <h3 id="version_1621" data-text="Performance Monitoring version 16.2.1" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 16.2.1</h3> <ul> <li><span class="release-fixed"></span> SDK size is now smaller.</li> </ul> <h3 id="ml_kit_for_firebase_custom_model_version_1624" data-text="ML Kit for Firebase Custom Model version 16.2.4" tabindex="-1">ML Kit for Firebase Custom Model version 16.2.4</h3> <ul> <li><span class="release-fixed"></span> Bug fixes and internal improvements.</li> </ul> <h3 id="ml_kit_for_firebase_vision_version_1802" data-text="ML Kit for Firebase Vision version 18.0.2" tabindex="-1">ML Kit for Firebase Vision version 18.0.2</h3> <ul> <li><span class="release-changed"></span> Face contour detection now only returns contours for the most prominent face.</li> <li><span class="release-changed"></span> The face tracking feature is disabled for contour-only detection in <code translate="no" dir="ltr">FAST</code> mode.</li> <li><span class="release-changed"></span> Vision detectors no longer override <code translate="no" dir="ltr">finalize()</code> method.</li> </ul> <h3 id="version_1710" data-text="App Indexing version 17.1.0" tabindex="-1"><span class="notranslate">App Indexing</span> version 17.1.0</h3> <ul> <li><p><span class="release-changed"></span> Apps will need to bump their <code translate="no" dir="ltr">compileSdkVersion</code> to 28 or higher.</p></li> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appindexing/Indexable.Metadata.Builder#setSliceUri(android.net.Uri)"><code translate="no" dir="ltr">Indexable.Metadata.Builder.setSliceUri()</code></a>, which gives developers the ability to provide dynamic and interactive search results, <a href="//developer.android.com/reference/android/app/slice/Slice"><code translate="no" dir="ltr">Slices</code></a>, in the Google search app. Note that this method grants permission for the specified Uri to Google Play Services (<code translate="no" dir="ltr">com.google.android.gms</code>), to <a href="//developer.android.com/reference/android/app/slice/SliceManager#bindSlice(android.net.Uri)"><code translate="no" dir="ltr">bind</code></a> to and cache the Slice, and to Google search app (<code translate="no" dir="ltr">com.google.android.googlequicksearchbox</code>), to render the Slice. The client app can revoke Slice permissions to these packages at any time through <a href="//developer.android.com/reference/android/app/slice/SliceManager#revokeSlicePermission(String,%20android.net.Uri)"><code translate="no" dir="ltr">SliceManager.revokeSlicePermission()</code></a>.</p></li> <li><p><span class="release-changed"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/appindexing/builders/GeoShapeBuilder#setBox(String)"><code translate="no" dir="ltr">GeoShapeBuilder.setBox()</code></a> and replaced with a varargs <a href="/docs/reference/android/com/google/firebase/appindexing/builders/GeoShapeBuilder#setBox(String...)"><code translate="no" dir="ltr">GeoShapeBuilder.setBox()</code></a>.</p></li> </ul> <h2 name="20181109" id="update_-_november_9_2018" data-text="Update - November 9, 2018" tabindex="-1">Update - November 9, 2018</h2> <h3 id="general_2" data-text="General" tabindex="-1">General</h3> <ul> <li><span class="release-changed"></span> Updated okhttp versions to 2.7.5 in Open sourced Firebase libraries to fix potential vulnerabilities, as noted in GitHub Issue https://github.com/firebase/firebase-android-sdk/issues/99</li> </ul> <h2 name="20181102" id="update_-_november_2_2018" data-text="Update - November 2, 2018" tabindex="-1">Update - November 2, 2018</h2> <h3 id="version_1605" data-text="Analytics version 16.0.5" tabindex="-1"><span class="notranslate">Analytics</span> version 16.0.5</h3> <ul> <li><span class="release-fixed"></span> This release includes minor bug fixes.</li> <li><span class="release-fixed"></span> This release includes improvements to startup latency.</li> </ul> <h3 id="version_1613" data-text="Dynamic Links version 16.1.3" tabindex="-1"><span class="notranslate">Dynamic Links</span> version 16.1.3</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused short link creation to fail when creating links through <code translate="no" dir="ltr">FirebaseDynamicLinks.getInstance().createDynamicLink().buildShortDynamicLink()</code> using Google Play Services 13.2.80 and FDL SDK 16.1.0. The issue only occurred when creating shortening links from parameters, links created using preconstructed long links from <code translate="no" dir="ltr">setLongLink()</code> were unaffected. This fix also addresses issues in newer versions of Google Play Services.</li> </ul> <h2 name="20181025" id="update_-_october_25_2018" data-text="Update - October 25, 2018" tabindex="-1">Update - October 25, 2018</h2> <h3 id="general_3" data-text="General" tabindex="-1">General</h3> <ul> <li><span class="release-changed"></span> Open sourced Firebase libraries are no longer distributed proguarded.</li> </ul> <h3 id="google-services_plugin_420" data-text="google-services plugin 4.2.0" tabindex="-1">google-services plugin 4.2.0</h3> <ul> <li><span class="release-fixed"></span> Improved support for instant-app projects.</li> <li><span class="release-fixed"></span> Improved version checking mechanism.</li> <li><span class="release-feature"></span> Plugin is now Open Sourced at https://github.com/google/play-services-plugins</li> </ul> <h3 id="version_1712" data-text="Cloud Firestore version 17.1.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.1.2</h3> <ul> <li><span class="release-changed"></span> Changed how the SDK handles locally-updated documents while syncing those updates with Cloud Firestore servers. This can lead to slight behavior changes and may affect the <a href="/docs/reference/android/com/google/firebase/firestore/SnapshotMetadata#hasPendingWrites()"><code translate="no" dir="ltr">SnapshotMetadata.hasPendingWrites()</code></a> metadata flag.</li> <li><span class="release-changed"></span> Eliminated superfluous update events for locally cached documents that are known to lag behind the server version. Instead, the SDK buffers these events until the client has caught up with the server.</li> </ul> <h3 id="version_1703" data-text="In-App Messaging version 17.0.3" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 17.0.3</h3> <ul> <li><span class="release-fixed"></span> Improved caching logic, added safeguards for cache expiration, and cleaned up API surface to prepare for open sourcing the <span class="notranslate">In-App Messaging</span>-display SDK.</li> </ul> <h3 id="-display_version_1703" data-text="In-App Messaging-display version 17.0.3" tabindex="-1"><span class="notranslate">In-App Messaging</span>-display version 17.0.3</h3> <ul> <li><span class="release-fixed"></span> Improved caching logic, added safeguards for cache expiration, and cleaned up API surface to prepare for open sourcing.</li> </ul> <h3 id="version_1620" data-text="Performance Monitoring version 16.2.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 16.2.0</h3> <ul> <li><p><span class="release-feature"></span> Introduces the Sessions feature, which gives developers access to actionable insights about data captured using <span class="notranslate">Performance Monitoring</span>.</p></li> <li><p><span class="release-fixed"></span> Minor bug fixes and improvements.</p></li> </ul> <h2 name="20181016" id="update_-_october_16_2018" data-text="Update - October 16, 2018" tabindex="-1">Update - October 16, 2018</h2> <h3 id="version_1610" data-text="Remote Config version 16.1.0" tabindex="-1"><span class="notranslate">Remote Config</span> version 16.1.0</h3> <ul> <li><span class="release-fixed"></span> Bug fixes and internal improvements to support Firebase Performance Monitoring features.</li> </ul> <h3 id="version_1604" data-text="Authentication version 16.0.4" tabindex="-1"><span class="notranslate">Authentication</span> version 16.0.4</h3> <ul> <li><span class="release-fixed"></span> Bug fixes and internal improvements.</li> </ul> <h3 id="firebase_instance_id_version_1704" data-text="Firebase Instance ID version 17.0.4" tabindex="-1">Firebase Instance ID version 17.0.4</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that could cause a deadlock during initialization.</li> </ul> <h3 id="version_1734" data-text="Cloud Messaging version 17.3.4" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 17.3.4</h3> <ul> <li><span class="release-fixed"></span> Bug fixes and internal improvements.</li> </ul> <h3 id="ml_kit_for_firebase_custom_model_version_1623" data-text="ML Kit for Firebase Custom Model version 16.2.3" tabindex="-1">ML Kit for Firebase Custom Model version 16.2.3</h3> <ul> <li><span class="release-changed"></span> Upgraded TensorFlowLite dependency to 1.10.0</li> </ul> <h3 id="ml_kit_for_firebase_vision_version_1801" data-text="ML Kit for Firebase Vision version 18.0.1" tabindex="-1">ML Kit for Firebase Vision version 18.0.1</h3> <ul> <li><span class="release-feature"></span> Added support for face contour detection.</li> <li><span class="release-changed"></span> Changed API for <a href="/docs/reference/android/com/google/firebase/ml/vision/face/FirebaseVisionFaceDetectorOptions"><code translate="no" dir="ltr">FirebaseVisionFaceDetectorOptions</code></a> to support face countour detection options.</li> </ul> <h2 name="20181002" id="update_-_october_2_2018" data-text="Update - October 2, 2018" tabindex="-1">Update - October 2, 2018</h2> <h3 id="version_1603" data-text="Realtime Database version 16.0.3" tabindex="-1"><span class="notranslate">Realtime Database</span> version 16.0.3</h3> <ul> <li><span class="release-fixed"></span> Fixed an initialization issue that prevented the Realtime Database client from being initialized outside of Android&#39;s main thread.</li> </ul> <h3 id="version_1711" data-text="Cloud Firestore version 17.1.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.1.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where the first <code translate="no" dir="ltr">get()</code> call made after being offline could incorrectly return cached data without attempting to reach the backend.</li> <li><span class="release-changed"></span> Changed <code translate="no" dir="ltr">get()</code> to only make one attempt to reach the backend before returning cached data, potentially reducing delays while offline.</li> <li><span class="release-fixed"></span> Fixed an issue that caused Firebase to drop empty objects from calls to <code translate="no" dir="ltr">set(..., SetOptions.merge())</code>.</li> <li><span class="release-fixed"></span> Updated printf-style templates to ensure that they&#39;re compile time constants. Previously, some were influenced by error messages. When those error messages contained <code translate="no" dir="ltr">%p</code> or other, related tokens, <code translate="no" dir="ltr">String.format()</code> would throw an exception.</li> <li><span class="release-changed"></span> Some SDK errors that represent common mistakes, like permission errors or missing indexes, are automatically logged as warnings in addition to being surfaced via the API.</li> </ul> <h2 name="20180918" id="update_-_september_18_2018" data-text="Update - September 18, 2018" tabindex="-1">Update - September 18, 2018</h2> <h3 id="version_1732" data-text="Cloud Messaging version 17.3.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 17.3.2</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that would occasionally cause apps to crash with Android Not Responding (ANR) errors when receiving a message.</li> </ul> <h2 name="20180905" id="update_-_september_6_2018" data-text="Update - September 6, 2018" tabindex="-1">Update - September 6, 2018</h2> <h3 id="firebase_instance_id_version_1701" data-text="Firebase Instance ID version 17.0.1" tabindex="-1">Firebase Instance ID version 17.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed a compatibility issue with Google Cloud Messaging (GCM) libraries, apps using both could experience delayed messages, slow performance, and even device-wide errors.</li> </ul> <h3 id="version_1602" data-text="Realtime Database version 16.0.2" tabindex="-1"><span class="notranslate">Realtime Database</span> version 16.0.2</h3> <ul> <li><span class="release-fixed"></span> This release includes minor fixes and improvements.</li> </ul> <h3 id="version_1602" data-text="Cloud Storage for Firebase version 16.0.2" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 16.0.2</h3> <ul> <li><span class="release-fixed"></span> This release includes minor fixes and improvements.</li> </ul> <h2 name="20180823" id="update_-_august_23_2018" data-text="Update - August 23, 2018" tabindex="-1">Update - August 23, 2018</h2> <ul> <li><p><span class="release-fixed"></span> This release includes minor fixes and improvements to the following SDKs:</p> <ul> <li><code translate="no" dir="ltr">firebase-core</code></li> <li><code translate="no" dir="ltr">firebase-crash</code></li> <li><code translate="no" dir="ltr">firebase-analytics</code></li> <li><code translate="no" dir="ltr">firebase-dynamic-links</code></li> <li><code translate="no" dir="ltr">firebase-invites</code></li> </ul></li> </ul> <h2 name="20180822" id="update_-_august_22_2018" data-text="Update - August 22, 2018" tabindex="-1">Update - August 22, 2018</h2> <h3 id="-display_version_1701" data-text="In-App Messaging-display version 17.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span>-display version 17.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <span class="notranslate">Firebase In-App Messaging</span> and Firestore could not be included/built into the same app, because of an obfuscation collision.</li> </ul> <h3 id="version_1701" data-text="In-App Messaging version 17.0.1" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 17.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <span class="notranslate">Firebase In-App Messaging</span> and Firestore could not be included/built into the same app, because of an obfuscation collision. </li> </ul> <h2 name="20180821" id="update_-_august_21_2018" data-text="Update - August 21, 2018" tabindex="-1">Update - August 21, 2018</h2> <h3 id="version_1730" data-text="Cloud Messaging version 17.3.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 17.3.0</h3> <ul> <li><span class="release-changed"></span> Incremented the version number to 17.3.0 due to internal SDK changes. These changes do not affect client functionality, and developers do not need to take any action.</li> </ul> <h2 name="20180816" id="update_-_august_16_2018" data-text="Update - August 16, 2018" tabindex="-1">Update - August 16, 2018</h2> <h3 id="version_1700" data-text="In-App Messaging version 17.0.0" tabindex="-1"><span class="notranslate">In-App Messaging</span> version 17.0.0</h3> <ul> <li><span class="release-feature"></span> The initial public beta release of the Firebase In-App Messaging SDK for Android is now available. To learn more, see the <a href="/docs/in-app-messaging">Firebase In-App Messaging documentation</a>.</li> </ul> <h2 name="20180813" id="correction_-_august_13_2018" data-text="Correction - August 13, 2018" tabindex="-1">Correction - August 13, 2018</h2> <h3 id="version_1710" data-text="Cloud Firestore version 17.1.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.1.0</h3> <ul> <li><span class="release-fixed"></span> Corrected an issue with methods in the Cloud Firestore v17.0.5 release. To avoid potential errors, don&#39;t use v17.0.5.</li> </ul> <h2 name="20180813" id="update_-_august_13_2018" data-text="Update - August 13, 2018" tabindex="-1">Update - August 13, 2018</h2> <h3 id="google-services_plugin_410" data-text="google-services plugin 4.1.0" tabindex="-1">google-services plugin 4.1.0</h3> <ul> <li><span class="release-fixed"></span> Improved support for instant-app projects.</li> </ul> <h3 id="version_1610" data-text="Performance Monitoring version 16.1.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 16.1.0</h3> <ul> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">SecurityException</code> crash on certain devices that do not have Google Play Services on them.</li> </ul> <h3 id="ml_kit_for_firebase_version_1700" data-text="ML Kit for Firebase version 17.0.0" tabindex="-1">ML Kit for Firebase version 17.0.0</h3> <ul> <li><span class="release-changed"></span> Unified and enhanced on-device and cloud text recognition API.</li> <li><span class="release-changed"></span> Enhanced cloud document scanning API.</li> </ul> <h3 id="version_1705" data-text="Cloud Firestore version 17.0.5" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.0.5</h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/firestore/FieldValue#arrayUnion(Object...)"><code translate="no" dir="ltr">FieldValue.arrayUnion()</code></a> and <a href="/docs/reference/android/com/google/firebase/firestore/FieldValue#arrayRemove(Object...)"><code translate="no" dir="ltr">FieldValue.arrayRemove()</code></a> to atomically add and remove elements from an array field in a document.</li> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/firestore/Query#whereArrayContains(com.google.firebase.firestore.FieldPath,%20java.lang.Object)"><code translate="no" dir="ltr">Query.whereArrayContains()</code></a> query operator to find documents where an array field contains a specific element.</li> <li><span class="release-changed"></span> Improved offline performance with many outstanding writes.</li> <li><span class="release-fixed"></span> Firestore will now recover from auth token expiration when the system clock is wrong.</li> </ul> <h2 name="20180727" id="update_-_july_27_2018" data-text="Update - July 27, 2018" tabindex="-1">Update - July 27, 2018</h2> <h3 id="version_1704" data-text="Cloud Firestore version 17.0.4" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.0.4</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where queries returned fewer results than they should. The issue related to <a href="https://github.com/firebase/firebase-ios-sdk/issues/1548">improper caching</a>, so clients may use extra bandwidth the first time they launch with this version of the SDK, as they re-download cleared cached data.</li> </ul> <h2 name="20180712" id="update_-_july_12_2018" data-text="Update - July 12, 2018" tabindex="-1">Update - July 12, 2018</h2> <h3 id="version_1703" data-text="Cloud Firestore version 17.0.3" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.0.3</h3> <ul> <li><span class="release-changed"></span> The <a href="/docs/reference/android/com/google/firebase/Timestamp"><code translate="no" dir="ltr">Timestamp</code></a> class now implements <a href="//developer.android.com/reference/android/os/Parcelable"><code translate="no" dir="ltr">Parcelable</code></a> in addition to <a href="//developer.android.com/reference/java/lang/Comparable"><code translate="no" dir="ltr">Comparable</code></a>.</li> </ul> <h3 id="version_1610" data-text="Cloud Functions for Firebase Client SDK version 16.1.0" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span> version 16.1.0</h3> <ul> <li><p><span class="release-feature"></span> <code translate="no" dir="ltr">FirebaseFunctions.getInstance()</code> now allows passing in an optional region to override the default &quot;us-central1&quot;.</p></li> <li><p><span class="release-feature"></span> New <code translate="no" dir="ltr">useFunctionsEmulator</code> method allows testing against a local instance of the <a href="https://firebase.google.com/docs/functions/local-emulator">Cloud Functions Emulator</a>.</p></li> </ul> <h3 id="google-services_plugin_402" data-text="google-services plugin 4.0.2" tabindex="-1">google-services plugin 4.0.2</h3> <ul> <li><span class="release-fixed"></span> Improved support for multi-module builds that require different sets of Firebase dependencies.</li> </ul> <h3 id="strict-version-matcher_plugin_103" data-text="strict-version-matcher plugin 1.0.3" tabindex="-1">strict-version-matcher plugin 1.0.3</h3> <ul> <li><span class="release-fixed"></span> Improved support for multi-module builds that require different sets of Firebase dependencies.</li> </ul> <h2 name="20180628" id="update_-_june_28_2018" data-text="Update - June 28, 2018" tabindex="-1">Update - June 28, 2018</h2> <h3 id="firebase_instance_id_version_1620" data-text="Firebase Instance ID version 16.2.0" tabindex="-1">Firebase Instance ID version 16.2.0</h3> <ul> <li><p><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId#getInstanceId()"><code translate="no" dir="ltr">getInstanceId</code></a> method to <a href="/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId#getInstanceId()"><code translate="no" dir="ltr">FirebaseInstanceId</code></a>. The method returns a <a href="//developers.google.com/android/reference/com/google/android/gms/tasks/Task"><code translate="no" dir="ltr">Task</code></a> that can be used to get an <a href="/docs/reference/android/com/google/firebase/iid/InstanceIdResult"><code translate="no" dir="ltr">InstanceIdResult</code></a> that contains the ID and token.</p></li> <li><p><span class="release-deprecated"></span> Deprecated the <a href="/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId#getToken()"><code translate="no" dir="ltr">getToken</code></a> method of <a href="/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId"><code translate="no" dir="ltr">FirebaseInstanceId</code></a> in favor of the newly-introduced <a href="/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId#getInstanceId()"><code translate="no" dir="ltr">getInstanceId</code></a>.</p></li> <li><p><span class="release-deprecated"></span> Deprecated the <a href="/docs/reference/android/com/google/firebase/iid/FirebaseInstanceIdService"><code translate="no" dir="ltr">FirebaseInstanceIdService</code></a> class in favor of overriding the <code translate="no" dir="ltr">onNewToken</code> method of <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService"><code translate="no" dir="ltr">FirebaseMessagingService</code></a>.</p></li> </ul> <h3 id="version_1710" data-text="Cloud Messaging version 17.1.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 17.1.0</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">onNewToken</code> method to <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService"><code translate="no" dir="ltr">FirebaseMessagingService</code></a> which is invoked when the app gets a new Instance ID token or its existing token changes.</li> </ul> <h2 name="20180621" id="update_-_june_21_2018" data-text="Update - June 21, 2018" tabindex="-1">Update - June 21, 2018</h2> <h3 id="version_1702" data-text="Cloud Firestore version 17.0.2" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.0.2</h3> <ul> <li><span class="release-changed"></span> gRPC requirement updated from 1.8.0 to 1.12.0. This allows quicker failover between Wi-Fi and cellular networks.</li> </ul> <h3 id="version_1601" data-text="Invites version 16.0.1" tabindex="-1"><span class="notranslate">Invites</span> version 16.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed incompatibility with firebase-core 16.0.1.</li> </ul> <h2 name="20180614" id="update_-_june_14_2018" data-text="Update - June 14, 2018" tabindex="-1">Update - June 14, 2018</h2> <h3 id="firebase_core_version_1601" data-text="Firebase Core version 16.0.1" tabindex="-1">Firebase Core version 16.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <span class="notranslate">Cloud Messaging</span> events weren&#39;t logged properly.</li> </ul> <h3 id="version_1601" data-text="App Indexing version 16.0.1" tabindex="-1"><span class="notranslate">App Indexing</span> version 16.0.1</h3> <ul> <li><p><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appindexing/builders/AudiobookBuilder"><code translate="no" dir="ltr">AudiobookBuilder</code></a> and <a href="/docs/reference/android/com/google/firebase/appindexing/builders/BookBuilder"><code translate="no" dir="ltr">BookBuilder</code></a> indexable builders to Firebase App Indexing API.</p></li> <li><p><span class="release-feature"></span> Enabled custom key-value pairs and the ability to specify the action name and url on the <a href="/docs/reference/android/com/google/firebase/appindexing/Action.Builder"><code translate="no" dir="ltr">Action.Builder</code></a>.</p></li> </ul> <h3 id="version_1602" data-text="Authentication version 16.0.2" tabindex="-1"><span class="notranslate">Authentication</span> version 16.0.2</h3> <ul> <li><span class="release-fixed"></span> Small fixes for error handling.</li> </ul> <h2 name="20180524" id="update_-_may_24_2018" data-text="Update - May 24, 2018" tabindex="-1">Update - May 24, 2018</h2> <h3 id="google-services_plugin_401" data-text="google-services plugin 4.0.1" tabindex="-1">google-services plugin 4.0.1</h3> <ul> <li><span class="release-fixed"></span> Resolves a null pointer exception during dependency tree analysis introduced in 4.0.0.</li> </ul> <h2 name="20180612" id="update_-_june_12_2018" data-text="Update - June 12, 2018" tabindex="-1">Update - June 12, 2018</h2> <h3 id="general_4" data-text="General" tabindex="-1">General</h3> <ul> <li><p><span class="release-changed"></span> Your app gradle file now has to explicitly list <code translate="no" dir="ltr">com.google.firebase:firebase-core</code> as a dependency for Firebase services to work as expected.</p></li> <li><p><span class="release-changed"></span> Unless otherwise specified, services&#39; major version increases were made to correct version range issues in their version 15 releases.</p></li> </ul> <h3 id="google-services_plugin_400" data-text="google-services plugin 4.0.0" tabindex="-1">google-services plugin 4.0.0</h3> <ul> <li><span class="release-changed"></span> The plugin no longer injects a <code translate="no" dir="ltr">firebase-core</code> dependency under any circumstances.</li> <li><span class="release-changed"></span> The plugin is no longer compatible with any Firebase services below version 14.0.0.</li> <li><span class="release-changed"></span> The plugin no longer supports ranged version checking.</li> <li><span class="release-fixed"></span> The plugin is now more stable when used on instant apps and apps that use databinding.</li> </ul> <h3 id="strict-version-matcher_plugin_101" data-text="strict-version-matcher plugin 1.0.1" tabindex="-1">strict-version-matcher plugin 1.0.1</h3> <ul> <li><span class="release-fixed"></span> The plugin is now more stable when used on instant apps and apps that use databinding.</li> </ul> <h3 id="version_1701" data-text="Cloud Firestore version 17.0.1" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 17.0.1</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <code translate="no" dir="ltr">set()</code> didn&#39;t correctly respect <a href="/docs/reference/android/com/google/firebase/firestore/SetOptions#mergeFields(java.util.List%3Cjava.lang.String%3E)"><code translate="no" dir="ltr">SetOptions.mergeFields()</code></a> for data containing <a href="/docs/reference/android/com/google/firebase/firestore/FieldValue#delete()"><code translate="no" dir="ltr">FieldValue.delete()</code></a> or <a href="/docs/reference/android/com/google/firebase/firestore/FieldValue#serverTimestamp()"><code translate="no" dir="ltr">FieldValue.serverTimestamp()</code></a> values.</li> </ul> <h3 id="version_1601" data-text="Realtime Database version 16.0.1" tabindex="-1"><span class="notranslate">Realtime Database</span> version 16.0.1</h3> <ul> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">Nullability</code> annotations to all public API classes/methods.</li> </ul> <h3 id="version_1601" data-text="Authentication version 16.0.1" tabindex="-1"><span class="notranslate">Authentication</span> version 16.0.1</h3> <ul> <li><p><span class="release-feature"></span> Added an API to facilitate testing phone authentication.</p></li> <li><p><span class="release-changed"></span> Removed the deprecated <code translate="no" dir="ltr">getToken()</code> method from the <a href="/docs/reference/android/com/google/firebase/auth/FirebaseUser"><code translate="no" dir="ltr">FirebaseUser</code></a> class. Switch to <a href="/docs/reference/android/com/google/firebase/auth/FirebaseUser#getIdToken(boolean)"><code translate="no" dir="ltr">getIdToken()</code></a> instead, if you haven&#39;t already.</p></li> </ul> <h3 id="version_1601" data-text="Cloud Storage for Firebase version 16.0.1" tabindex="-1"><span class="notranslate">Cloud Storage for Firebase</span> version 16.0.1</h3> <ul> <li><p><span class="release-feature"></span> Added support for <code translate="no" dir="ltr">onSuccessTask()</code> and <code translate="no" dir="ltr">addOnCanceledListener()</code> to <a href="/docs/reference/android/com/google/firebase/storage/StorageTask"><code translate="no" dir="ltr">StorageTask</code></a>, <a href="/docs/reference/android/com/google/firebase/storage/UploadTask"><code translate="no" dir="ltr">UploadTask</code></a>, <a href="/docs/reference/android/com/google/firebase/storage/StreamDownloadTask"><code translate="no" dir="ltr">StreamDownloadTask</code></a>, and <a href="/docs/reference/android/com/google/firebase/storage/FileDownloadTask"><code translate="no" dir="ltr">FileDownloadTask</code></a>.</p></li> <li><p><span class="release-changed"></span> Removed the deprecated <code translate="no" dir="ltr">StorageMetadata.getDownloadUrl()</code> and <code translate="no" dir="ltr">UploadTask.TaskSnapshot.getDownloadUrl()</code> methods. To get a current download URL, use <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#getDownloadUrl()"><code translate="no" dir="ltr">StorageReference.getDownloadUr()</code></a>.</p></li> </ul> <h3 id="ml_kit_for_firebase_version_1600" data-text="ML Kit for Firebase version 16.0.0" tabindex="-1">ML Kit for Firebase version 16.0.0</h3> <ul> <li><span class="release-fixed"></span> Improved custom model downloading logic to handle user cancellation.</li> </ul> <h3 id="version_1700" data-text="Cloud Messaging version 17.0.0" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 17.0.0</h3> <ul> <li><p><span class="release-feature"></span> Added <code translate="no" dir="ltr">getPriority()</code> and <code translate="no" dir="ltr">getOriginalPriority()</code> methods to <a href="/docs/reference/android/com/google/firebase/messaging/RemoteMessage"><code translate="no" dir="ltr">RemoteMessage</code></a>.</p></li> <li><p><span class="release-changed"></span> The methods <code translate="no" dir="ltr">subscribeToTopic()</code> and <code translate="no" dir="ltr">unsubscribeFromTopic()</code> on <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging"><code translate="no" dir="ltr">FirebaseMessaging</code></a> now return a <a href="/docs/reference/android/com/google/android/gms/tasks/Task"><code translate="no" dir="ltr">Task</code></a> that can be used to see when the request has completed.</p></li> </ul> <h2 name="20180508" id="sdk_update_-_may_8_2018" data-text="SDK Update - May 8, 2018" tabindex="-1">SDK Update - May 8, 2018</h2> <h3 id="ml_kit_for_firebase_version_1500" data-text="ML Kit for Firebase version 15.0.0" tabindex="-1">ML Kit for Firebase version 15.0.0</h3> <ul> <li><span class="release-feature"></span> ML Kit for Firebase is now available for public beta. To learn more, read <a href="/docs/ml-kit">ML Kit for Firebase</a>.</li> </ul> <h3 id="version_1520" data-text="Performance Monitoring version 15.2.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 15.2.0</h3> <ul> <li><p><span class="release-feature"></span> <span class="notranslate">Performance Monitoring</span> automatic traces now include screen traces, which monitor slow and frozen frames.</p></li> <li><p><span class="release-changed"></span> The <code translate="no" dir="ltr">incrementCounter()</code> method of the <a href="/docs/reference/android/com/google/firebase/perf/metrics/Trace"><code translate="no" dir="ltr">Trace</code></a> class is now deprecated. Use the new <code translate="no" dir="ltr">incrementMetric()</code> method instead.</p></li> </ul> <h2 name="20180502" id="sdk_update_-_may_2_2018" data-text="SDK Update - May 2, 2018" tabindex="-1">SDK Update - May 2, 2018</h2> <h3 id="general_5" data-text="General" tabindex="-1">General</h3> <ul> <li><p><span class="release-changed"></span> Firebase Android SDKs now have independent version numbers, allowing for more frequent, flexible updates.</p></li> <li><p><span class="release-changed"></span> If your app has a dependency on <code translate="no" dir="ltr">com.google.firebase:firebase-core:15.0.0</code> as well as any of the following libraries:</p> <ul> <li><code translate="no" dir="ltr">com.google.android.gms:play-services-analytics</code></li> <li><code translate="no" dir="ltr">com.google.android.gms:play-services-appinvite</code></li> <li><code translate="no" dir="ltr">com.google.android.gms:play-services-tagmanager</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-analytics</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-crash</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-dynamic-links</code></li> <li><code translate="no" dir="ltr">com.google.firebase:firebase-messaging</code></li> </ul> <p>You will need to update the version of the latter dependency to 15.0.2. This addresses the issue where version 3.3.0 of the <a href="//developers.google.com/android/guides/google-services-plugin">Google Services Gradle plugin</a> reports: <code translate="no" dir="ltr">The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[15.0.0,15.0.0], [15.0.2,15.0.2]], but resolves to 15.0.2...</code></p></li> </ul> <h3 id="version_1502" data-text="Analytics version 15.0.2" tabindex="-1"><span class="notranslate">Analytics</span> version 15.0.2</h3> <ul> <li><span class="release-changed"></span> Updates for auto-initialization and interoperability with other Firebase libraries.</li> </ul> <h3 id="version_1510" data-text="Authentication version 15.1.0" tabindex="-1"><span class="notranslate">Authentication</span> version 15.1.0</h3> <ul> <li><p><span class="release-changed"></span> Updates for auto-initialization and interoperability with other Firebase libraries.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">updateCurrentUser()</code> method to the <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuth"><code translate="no" dir="ltr">FirebaseAuth</code></a> class, to allow copying <a href="/docs/reference/android/com/google/firebase/auth/FirebaseUser"><code translate="no" dir="ltr">FirebaseUser</code></a>s from one instance to another.</p></li> </ul> <h3 id="version_1502" data-text="Cloud Messaging version 15.0.2" tabindex="-1"><span class="notranslate">Cloud Messaging</span> version 15.0.2</h3> <ul> <li><span class="release-feature"></span> Updates for auto-initialization and interoperability with other Firebase libraries.</li> </ul> <h3 id="version_1600" data-text="Cloud Firestore version 16.0.0" tabindex="-1"><span class="notranslate">Cloud Firestore</span> version 16.0.0</h3> <ul> <li><p><span class="release-changed"></span> Replaced the <a href="/docs/reference/android/com/google/firebase/firestore/DocumentListenOptions"><code translate="no" dir="ltr">DocumentListenOptions</code></a> and <a href="/docs/reference/android/com/google/firebase/firestore/QueryListenOptions"><code translate="no" dir="ltr">QueryListenOptions</code></a> classes with a <code translate="no" dir="ltr">MetadataChanges</code> enum. Instead of calling <a href="/docs/reference/android/com/google/firebase/firestore/DocumentReference#addSnapshotListener(com.google.firebase.firestore.DocumentListenOptions,%20com.google.firebase.firestore.EventListener%3Ccom.google.firebase.firestore.DocumentSnapshot%3E)"><code translate="no" dir="ltr">addSnapshotListener()</code></a> with either of those classes, use the enum:<br> <code translate="no" dir="ltr">addSnapshotListener(MetadataChanges.INCLUDE, ...)</code></p></li> <li><p><span class="release-changed"></span> <a href="/docs/reference/android/com/google/firebase/firestore/QuerySnapshot#getDocumentChanges()"><code translate="no" dir="ltr">QuerySnapshot.getDocumentChanges()</code></a> now optionally takes a <code translate="no" dir="ltr">MetadataChanges</code> enum. By default, metadata-only document changes are suppressed in <code translate="no" dir="ltr">getDocumentChanges()</code>, even when listening to a query with <code translate="no" dir="ltr">MetadataChanges.INCLUDE</code>.</p></li> <li><p><span class="release-changed"></span> Added the ability to control whether <a href="/docs/reference/android/com/google/firebase/firestore/DocumentReference#get()"><code translate="no" dir="ltr">DocumentReference.get()</code></a> and <a href="/docs/reference/android/com/google/firebase/firestore/Query#get()"><code translate="no" dir="ltr">Query.get()</code></a> should fetch from server only, cache only, or attempt server and fall back to the cache. By default, both methods still attempt server and fall back to the cache.</p></li> <li><p><span class="release-changed"></span> <span class="notranslate">Cloud Firestore</span> no longer ProGuards its dependencies, <code translate="no" dir="ltr">GRPC</code> and <code translate="no" dir="ltr">protobuf</code>. As a result, if you use <code translate="no" dir="ltr">GRPC</code> or <code translate="no" dir="ltr">protobuf</code> independent of Firestore, your app will now only include one copy of either library in its final APK. If you don&#39;t use ProGuard, your app size will increase by roughly 1MB. You can avoid this increase by running ProGuard on your release builds to remove unneeded methods. To learn how, see <a href="https://developer.android.com/studio/build/shrink-code">Shrink Your Code and Resources</a>.</p></li> <li><p><span class="release-feature"></span> Added a <code translate="no" dir="ltr">ServerTimestampBehavior</code> enum to control how <a href="/docs/reference/android/com/google/firebase/firestore/DocumentSnapshot"><code translate="no" dir="ltr">DocumentSnapshot</code></a>s return unresolved server timestamps.</p></li> </ul> <h3 id="version_1502" data-text="Crash Reporting version 15.0.2" tabindex="-1"><span class="notranslate">Crash Reporting</span> version 15.0.2</h3> <ul> <li><span class="release-changed"></span> Firebase Crash Reporting is now deprecated. To monitor crashes in your apps, migrate to <span class="notranslate">Firebase Crashlytics</span>. To learn how, read <a href="/docs/crashlytics/upgrade-from-crash-reporting">Upgrade from Crash Reporting</a>.</li> </ul> <h3 id="version_1502" data-text="Cloud Storage version 15.0.2" tabindex="-1"><span class="notranslate">Cloud Storage</span> version 15.0.2</h3> <ul> <li><span class="release-changed"></span> The <a href="/docs/reference/android/com/google/firebase/storage/StorageMetadata#getDownloadUrl()"><code translate="no" dir="ltr">getDownloadUrl()</code></a> and <a href="/docs/reference/android/com/google/firebase/storage/StorageMetadata#getDownloadUrls()"><code translate="no" dir="ltr">getDownloadUrls()</code></a> methods of the <a href="/docs/reference/android/com/google/firebase/storage/StorageMetadata"><code translate="no" dir="ltr">StorageMetadata</code></a> class are now deprecated. Use <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#getDownloadUrl()"><code translate="no" dir="ltr">getDownloadUrl()</code></a> from <a href="/docs/reference/android/com/google/firebase/storage/StorageReference"><code translate="no" dir="ltr">StorageReference</code></a> instead.</li> </ul> <h3 id="version_1510" data-text="Performance Monitoring version 15.1.0" tabindex="-1"><span class="notranslate">Performance Monitoring</span> version 15.1.0</h3> <ul> <li><span class="release-changed"></span> Updates for auto-initialization and interoperability with other Firebase libraries.</li> </ul> <h2 id="sdk_version_1500_-_april_12_2018" data-text="SDK Version 15.0.0 - April 12, 2018" tabindex="-1"><a name="20180412">SDK Version 15.0.0 - April 12, 2018</a></h2> <h3 id="authentication" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/auth/GetTokenResult#getClaims()"><code translate="no" dir="ltr">getClaims()</code></a> method to the <a href="/docs/reference/android/com/google/firebase/auth/GetTokenResult"><code translate="no" dir="ltr">GetTokenResult</code></a> class to expose custom claims on the ID Token of the current user.</li> </ul> <h3 id="cloud-storage" data-text="Cloud Storage" tabindex="-1"><span class="notranslate">Cloud Storage</span></h3> <ul> <li><span class="release-changed"></span> Deprecated the <a href="/docs/reference/android/com/google/firebase/storage/StorageMetadata#getDownloadUrl()"><code translate="no" dir="ltr">getDownloadUrl()</code></a> and <a href="/docs/reference/android/com/google/firebase/storage/StorageMetadata#getDownloadUrls()"><code translate="no" dir="ltr">getDownloadUrls()</code></a> methods of the <a href="/docs/reference/android/com/google/firebase/storage/StorageMetadata"><code translate="no" dir="ltr">StorageMetadata</code></a> class. Use <a href="/docs/reference/android/com/google/firebase/storage/StorageReference#getDownloadUrl()"><code translate="no" dir="ltr">StorageReference.getDownloadUrl()</code></a> instead.</li> </ul> <h2 id="sdk_version_1201_-_march_28_2018" data-text="SDK Version 12.0.1 - March 28, 2018" tabindex="-1"><a name="20180328">SDK Version 12.0.1 - March 28, 2018</a></h2> <p>This update fixes issues introduced in the v12.0.0 release. For more details, see the <a href="//developers.google.com/android/guides/releases">Google Play services 12.0.1 release notes</a>.</p> <h2 id="sdk_version_1200_-_march_20_2018" data-text="SDK Version 12.0.0 - March 20, 2018" tabindex="-1"><a name="20180320">SDK Version 12.0.0 - March 20, 2018</a></h2> <h3 id="authentication_1" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><span class="release-feature"></span> Added passwordless sign-in through email link as a new sign-in mechanism.</li> <li><span class="release-feature"></span> Play Games is now supported as a sign-in provider. See the <a href="/docs/auth/android/play-games">integration guide</a>.</li> </ul> <h3 id="cloud-messaging" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#setAutoInitEnabled(boolean)"><code translate="no" dir="ltr">setAutoInitEnabled()</code></a> and <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#isAutoInitEnabled()"><code translate="no" dir="ltr">isAutoInitEnabled()</code></a> methods to the <a href="/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging"><code translate="no" dir="ltr">FirebaseMessaging</code></a> class to set and check whether <span class="notranslate">FCM</span> auto-initializes. Also added <code translate="no" dir="ltr">firebase_messaging_auto_init_enabled</code> manifest metadata flag for setting auto-initialization preferences from the Android Manifest file.</li> <li><span class="release-fixed"></span> Fixed a regression that caused custom notification icons to be rejected on Android 8.0.</li> </ul> <h3 id="cloud-firestore" data-text="Cloud Firestore" tabindex="-1"><span class="notranslate">Cloud Firestore</span></h3> <ul> <li><span class="release-changed"></span> Firestore now cleanly shuts down idle write streams.</li> <li><span class="release-changed"></span> When the <code translate="no" dir="ltr">includeMetadataChanges</code> option is enabled, snapshot listeners now receive an event, <code translate="no" dir="ltr">withsnapshot.metadata.isFromCache</code>, if the SDK loses or regains its connection to the backend. The event is <code translate="no" dir="ltr">true</code> when the connection is lost and <code translate="no" dir="ltr">false</code> when it&#39;s regained.</li> <li><span class="release-changed"></span> <a href="/docs/reference/android/com/google/firebase/firestore/DocumentSnapshot#getData()"><code translate="no" dir="ltr">DocumentSnapshot.getData()</code></a> now returns <code translate="no" dir="ltr">null</code> instead of throwing an exception when you use the method on non-existant documents. If you&#39;d like to minimize number of null-checks in your code, use the new <a href="/docs/reference/android/com/google/firebase/firestore/QueryDocumentSnapshot"><code translate="no" dir="ltr">QueryDocumentSnapshot</code></a> class instead.</li> <li><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#enableNetwork()"><code translate="no" dir="ltr">disableNetwork()</code></a> and <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#disableNetwork()"><code translate="no" dir="ltr">enableNetwork()</code></a> methods to the <a href="/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore"><code translate="no" dir="ltr">FirebaseFirestore</code></a> class, allowing for explicit network management.</li> <li><span class="release-feature"></span> Firestore queries can now accept Timestamp as an argument.</li> <li><span class="release-fixed"></span> Fixed a regression that sometimes resulted in an &quot;OnlineState could not affect limbo documents&quot; assertion crash when a client lost its network connection.</li> </ul> <h3 id="cloud-functions-for-firebase-client-sdk" data-text="Cloud Functions for Firebase Client SDK" tabindex="-1"><span class="notranslate"><span class="notranslate">Cloud Functions for Firebase</span> Client SDK</span></h3> <ul> <li><span class="release-feature"></span> This release contains the new Firebase Functions Client SDK, with support for HTTPS Callable Functions. See <a href="/docs/functions/callable">Call Functions from Your App</a>.</li> </ul> <h2 id="sdk_version_1180_-_december_18_2017" data-text="SDK Version 11.8.0 - December 18, 2017" tabindex="-1"><a name="20171218">SDK Version 11.8.0 - December 18, 2017</a></h2> <h3 id="app-indexing" data-text="App Indexing" tabindex="-1"><span class="notranslate">App Indexing</span></h3> <ul> <li><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/appindexing/builders/PlaceBuilder"><code translate="no" dir="ltr">PlaceBuilder</code></a> class that represents a general geographic location.</li> <li><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/appindexing/builders/VideoObjectBuilder#setDurationWatched(long)"><code translate="no" dir="ltr">setDurationWatched()</code></a> method to the <a href="/docs/reference/android/com/google/firebase/appindexing/builders/VideoObjectBuilder"><code translate="no" dir="ltr">VideoObjectBuilder</code></a> class, which lets you set the amount of time, in seconds, that the users has already watched.</li> <li><span class="release-feature"></span> Added the the <a href="/docs/reference/android/com/google/firebase/appindexing/builders/VideoObjectBuilder#setLocationCreated(com.google.firebase.appindexing.builders.PlaceBuilder)"><code translate="no" dir="ltr">VideoObjectBuilder.setLocationCreated()</code></a> and <a href="/docs/reference/android/com/google/firebase/appindexing/builders/PhotographBuilder#setLocationCreated(com.google.firebase.appindexing.builders.PlaceBuilder)"><code translate="no" dir="ltr">PhotographObjectBuilder.setLocationCreated()</code></a> methods to set when videos and photos, respectively, were created.</li> <li><span class="release-changed"></span> The <code translate="no" dir="ltr">messageAttachment</code> filed <a href="/docs/reference/android/com/google/firebase/appindexing/builders/MessageBuilder#setMessageAttachment(com.google.firebase.appindexing.builders.IndexableBuilder%3C?%3E...)"><code translate="no" dir="ltr">MessageBuilder</code></a> takes <code translate="no" dir="ltr">Indexable</code>.</li> </ul> <h3 id="authentication_2" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><span class="release-feature"></span> Added the ability to use Google Play Games as a sign-in provider in your Firebase Project.</li> </ul> <h3 id="cloud-messaging_1" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-fixed"></span> Fixed an internal <code translate="no" dir="ltr">NullPointerException</code> caused by a call to <a href="https://developer.android.com/reference/android/net/NetworkInfo.html#isConnected()"><code translate="no" dir="ltr">NetworkInfo.isConnected()</code></a>.</li> <li><span class="release-fixed"></span> Fixed compatibility issues with Google Play services version 12.0.</li> <li><span class="release-feature"></span> Added a check that keeps track of recently received messages and ignores any duplicates.</li> </ul> <h3 id="performance-monitoring" data-text="Performance Monitoring" tabindex="-1"><span class="notranslate">Performance Monitoring</span></h3> <ul> <li><span class="release-feature"></span> <span class="notranslate">Performance Monitoring</span> now includes the ability to define custom attributes for data segmentation. To learn more, see <a href="/docs/perf-mon/custom-attributes">Monitor Custom Attributes</a>.</li> <li><span class="release-feature"></span> You can now include specific network requests in <span class="notranslate">Performance Monitoring</span>. To learn how, read <a href="/docs/perf-mon/get-started-android#manual-network">Add monitoring for specific network requests</a>.</li> </ul> <h2 id="sdk_version_1162_-_november_27_2017" data-text="SDK Version 11.6.2 - November 27, 2017" tabindex="-1"><a name="20171127">SDK Version 11.6.2 - November 27, 2017</a></h2> <h3 id="cloud-firestore_1" data-text="Cloud Firestore" tabindex="-1"><span class="notranslate">Cloud Firestore</span></h3> <ul> <li><span class="release-changed"></span> Firestore now retries requests more often before considering a client offline.</li> </ul> <h3 id="cloud-storage_1" data-text="Cloud Storage" tabindex="-1"><span class="notranslate">Cloud Storage</span></h3> <ul> <li><span class="release-changed"></span> Streaming uploads that fail validation include the original error in their stacktrace.</li> <li><span class="release-changed"></span> Firebase Storage can take advantage of the total available system memory to increase upload performance.</li> </ul> <h2 id="sdk_version_1160_-_november_6_2017" data-text="SDK Version 11.6.0 - November 6, 2017" tabindex="-1"><a name="20171106">SDK Version 11.6.0 - November 6, 2017</a></h2> <h3 id="app-indexing_1" data-text="App Indexing" tabindex="-1"><span class="notranslate">App Indexing</span></h3> <ul> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appindexing/builders/PhotographBuilder"><code translate="no" dir="ltr">PhotographBuilder</code></a> and <a href="/docs/reference/android/com/google/firebase/appindexing/builders/VideoObjectBuilder"><code translate="no" dir="ltr">VideoObjectBuilder</code></a> indexable builders to Firebase App Indexing API.</li> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/appindexing/Scope"><code translate="no" dir="ltr">Scope</code></a> metadata attribute to allow developers to explicitly opt-in so that the inxexable can be uploaded to the cloud and shared with other devices.</li> </ul> <h3 id="analytics" data-text="Analytics" tabindex="-1"><span class="notranslate">Analytics</span></h3> <ul> <li><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics#resetAnalyticsData()"><code translate="no" dir="ltr">resetAnalyticsData()</code></a> method to allow developers to clear all Analytics data associated with an app user on the device and to reset their app instance id.</li> </ul> <h3 id="authentication_3" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><span class="release-feature"></span> Added user metadata to <a href="/docs/reference/android/com/google/firebase/auth/FirebaseUser"><code translate="no" dir="ltr">FirebaseUser</code></a> to help determine if the user is new.</li> <li><span class="release-feature"></span> Added the ability to get a <a href="/docs/reference/android/com/google/firebase/auth/PhoneAuthCredential"><code translate="no" dir="ltr">PhoneAuthCredential</code></a> from a <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuthUserCollisionException"><code translate="no" dir="ltr">FirebaseAuthUserCollisionException</code></a> if linking a phone number fails to prevent the need to send a second text message.</li> </ul> <h3 id="cloud-messaging_2" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-changed"></span> If your app crashes or doesn&#39;t respond, <span class="notranslate">Firebase Cloud Messaging</span> (<span class="notranslate">FCM</span>) now tries to redeliver missed messages after a short delay. This change is automatic, and doesn&#39;t require any updates to your code.</li> <li><span class="release-changed"></span> <code translate="no" dir="ltr">FirebaseInstanceIdInternalReceiver</code> has been removed from the SDK&#39;s automatically-merged AndroidManifest. If you weren&#39;t using Gradle or its manifest automerging feature and were adding this receiver manually, you can now remove it.</li> <li><span class="release-changed"></span> Improved <span class="notranslate">FCM</span> token fetch logic so that the <span class="notranslate">FCM</span> token is now created faster and with less battery drain.</li> </ul> <h3 id="dynamic-links" data-text="Dynamic Links" tabindex="-1"><span class="notranslate">Dynamic Links</span></h3> <ul> <li><span class="release-fixed"></span> Fixed an undercounting issue where <code translate="no" dir="ltr">dynamic_link_app_open</code> wasn&#39;t being logged to Google Analytics when the app was opened after being updated due to a link.</li> <li><span class="release-changed"></span> Deprecated <a href="/docs/reference/android/com/google/firebase/dynamiclinks/ShortDynamicLink.Warning#getCode()"><code translate="no" dir="ltr">Warning.getCode()</code></a>. <a href="/docs/reference/android/com/google/firebase/dynamiclinks/ShortDynamicLink.Warning#getMessage()"><code translate="no" dir="ltr">Warning.getMessage()</code></a> now returns all necessary information about the warning and how to correct it.</li> <li><span class="release-changed"></span> Clarified documentation for <a href="/docs/reference/android/com/google/firebase/dynamiclinks/DynamicLink.Builder#setLongLink(android.net.Uri)"><code translate="no" dir="ltr">DynamicLink.Builder.setLongLink()</code></a> to indicate that it&#39;s used to shorten a preconstructed long FDL.</li> </ul> <h3 id="cloud-firestore_2" data-text="Cloud Firestore" tabindex="-1"><span class="notranslate">Cloud Firestore</span></h3> <ul> <li><span class="release-feature"></span> Added support for deserializing field types with wildcard generic parameters (e.g. <code translate="no" dir="ltr">kotlin.Map</code>).</li> <li><span class="release-changed"></span> Improved validation of nested arrays to allow for indirect nesting.</li> <li><span class="release-changed"></span> You can now use <a href="/docs/reference/android/com/google/firebase/firestore/FieldValue#delete()"><code translate="no" dir="ltr">FieldValue.delete()</code></a> with <a href="/docs/reference/android/com/google/firebase/firestore/SetOptions#merge()"><code translate="no" dir="ltr">SetOptions.merge()</code></a>.</li> </ul> <h3 id="performance-monitoring_1" data-text="Performance Monitoring" tabindex="-1"><span class="notranslate">Performance Monitoring</span></h3> <ul> <li><span class="release-changed"></span> Separated rate limiting for <code translate="no" dir="ltr">TraceMetric</code> and <code translate="no" dir="ltr">NetworkRequestMetric</code>: <ul> <li><code translate="no" dir="ltr">TraceMetric</code>: limited to 300 logs per 10 minutes in foreground and 30 logs per 10 minutes in background.</li> <li><code translate="no" dir="ltr">NetworkRequestMetric</code>: limited to 700 logs per 10 minutes in foreground and 70 logs per 10 minutes in background.</li> </ul></li> </ul> <h2 id="sdk_version_1142_-_october_3_2017" data-text="SDK Version 11.4.2 - October 3, 2017" tabindex="-1"><a name='20171003"'>SDK Version 11.4.2 - October 3, 2017</a></h2> <h3 id="cloud-firestore_3" data-text="Cloud Firestore" tabindex="-1"><span class="notranslate">Cloud Firestore</span></h3> <ul> <li><span class="release-feature"></span> The initial public beta release of the <span class="notranslate">Cloud Firestore</span> SDK for Android is now available. To learn more, see the <a href="/docs/firestore"><span class="notranslate">Cloud Firestore</span> documentation</a> or go directly to the <a href="/docs/firestore/quickstart">Quickstart</a>.</li> </ul> <h2 id="sdk_version_1140_-_september_18_2017" data-text="SDK Version 11.4.0 - September 18, 2017" tabindex="-1"><a name='20170918"'>SDK Version 11.4.0 - September 18, 2017</a></h2> <h3 id="app-indexing_2" data-text="App Indexing" tabindex="-1"><span class="notranslate">App Indexing</span></h3> <ul> <li><span class="release-feature"></span> Added the ability to index sticker assets for Gboard, using the new <a href="/docs/reference/android/com/google/firebase/appindexing/builders/StickerBuilder"><code translate="no" dir="ltr">StickerBuilder</code></a> and <a href="/docs/reference/android/com/google/firebase/appindexing/builders/StickerPackBuilder"><code translate="no" dir="ltr">StickerPackBuilder</code></a> classes. To learn more, see <a href="https://android-developers.googleblog.com/2017/09/create-stickers-for-gboard-on-google.html">Create stickers for Gboard on Google Play</a>.</li> </ul> <h3 id="authentication_4" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><p><span class="release-feature"></span> You can now redirect users after email-based actions, like password resets or email verifications, by providing an app link with custom state to the new <a href="/docs/reference/android/com/google/firebase/auth/ActionCodeSettings"><code translate="no" dir="ltr">ActionCodeSettings</code></a> class.</p></li> <li><p><span class="release-feature"></span> You can now specify a language for emails and text messages sent from your apps using <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuth#useAppLanguage()"><code translate="no" dir="ltr">useAppLanguage()</code></a> or <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuth#setLanguageCode(java.lang.String)"><code translate="no" dir="ltr">setLanguageCode()</code></a>.</p></li> </ul> <h3 id="test-lab" data-text="Test Lab" tabindex="-1"><span class="notranslate">Test Lab</span></h3> <ul> <li><span class="release-changed"></span> Adjusted the IP addresses used by <span class="notranslate">Test Lab</span> devices. If your app works with digital advertising providers, contact them to make sure their filters are up-to-date. For the new addresses, see <a href="/docs/test-lab/overview#testlab_and_mobile_advertising"><span class="notranslate">Test Lab</span> and mobile advertising</a>.</li> </ul> <h2 id="sdk_version_1122_-_september_05_2017" data-text="SDK Version 11.2.2 - September 05, 2017" tabindex="-1"><a name='20170905"'>SDK Version 11.2.2 - September 05, 2017</a></h2> <h3 id="performance-monitoring_2" data-text="Performance Monitoring" tabindex="-1"><span class="notranslate">Performance Monitoring</span></h3> <ul> <li><span class="release-feature"></span> Improved logging to be more actionable and describe why a performance network request metric is not recorded when it occurs.</li> <li><span class="release-changed"></span> Increased character limits for trace and counter names. Names can now be up to 100 characters.</li> </ul> <h2 id="sdk_version_1120_-_august_14_2017" data-text="SDK Version 11.2.0 - August 14, 2017" tabindex="-1"><a name='20170814"'>SDK Version 11.2.0 - August 14, 2017</a></h2> <h3 id="app-indexing_3" data-text="App Indexing" tabindex="-1"><span class="notranslate">App Indexing</span></h3> <ul> <li><span class="release-changed"></span> The Firebase App Indexing API now sends updates for the on-device index through broadcasts to apps instead of starting a service. This change improves compatibility on Android O. See the <a href="/docs/app-indexing/android/personal-content">updated instructions</a> to modify your personal content indexing implementation.</li> </ul> <h3 id="realtime-database" data-text="Realtime Database" tabindex="-1"><span class="notranslate">Realtime Database</span></h3> <ul> <li><span class="release-fixed"></span> Improved latency for the initial <a href="/docs/reference/android/com/google/firebase/database/FirebaseDatabase#getReference()"><code translate="no" dir="ltr">getReference()</code></a> call.</li> </ul> <h3 id="dynamic-links_1" data-text="Dynamic Links" tabindex="-1"><span class="notranslate">Dynamic Links</span></h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">setNavigationInfoParameters()</code> method to the <a href="/docs/reference/android/com/google/firebase/dynamiclinks/DynamicLink.Builder"><code translate="no" dir="ltr">DynamicLink.Builder</code></a> class.</li> <li><span class="release-feature"></span> Added <a href="/docs/reference/android/com/google/firebase/dynamiclinks/DynamicLink.NavigationInfoParameters.Builder"><code translate="no" dir="ltr">DynamicLink.NavigationInfoParameters.Builder</code></a> class and corresponding <code translate="no" dir="ltr">DynamicLink.NavigationInfoParameters</code>.</li> </ul> <h3 id="cloud-storage_2" data-text="Cloud Storage" tabindex="-1"><span class="notranslate">Cloud Storage</span></h3> <ul> <li><span class="release-fixed"></span> You can now clear metadata for your Storage objects by setting the values in <a href="/docs/reference/android/com/google/firebase/storage/StorageMetadata.Builder"><code translate="no" dir="ltr">StorageMetadata.Builder</code></a> to null.</li> <li><span class="release-feature"></span> The stack trace for cancelled downloads now points to the code location where the cancellation was requested.</li> </ul> <h2 id="sdk_version_1104_-_july_26_2017" data-text="SDK Version 11.0.4 - July 26, 2017" tabindex="-1"><a name='20170726"'>SDK Version 11.0.4 - July 26, 2017</a></h2> <h3 id="cloud-messaging_3" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-fixed"></span> Fixed a regression causing apps running on secondary user profiles and Android For Work user profiles to not receive the <span class="notranslate">FCM</span> registration token.</li> </ul> <h3 id="performance-monitoring_3" data-text="Performance Monitoring" tabindex="-1"><span class="notranslate">Performance Monitoring</span></h3> <ul> <li><span class="release-fixed"></span> Fixed instances where app startup times included background thread time not caused by interactions.</li> </ul> <h2 id="sdk_version_1102_-_june_29_2017" data-text="SDK Version 11.0.2 - June 29, 2017" tabindex="-1"><a name="20170629">SDK Version 11.0.2 - June 29, 2017</a></h2> <h3 id="performance-monitoring_4" data-text="Performance Monitoring" tabindex="-1"><span class="notranslate">Performance Monitoring</span></h3> <ul> <li><span class="release-fixed"></span> Fixed a variety of minor issues, most of which relate to HTTP/S network request monitoring.</li> </ul> <h3 id="crash-reporting" data-text="Crash Reporting" tabindex="-1"><span class="notranslate">Crash Reporting</span></h3> <ul> <li><span class="release-fixed"></span> Reduced the resources required to initialize <span class="notranslate">Crash Reporting</span>.</li> </ul> <h2 id="june_19_2017" data-text="June 19, 2017" tabindex="-1">June 19, 2017</h2> <h3 id="test-lab_1" data-text="Test Lab" tabindex="-1"><span class="notranslate">Test Lab</span></h3> <ul> <li><span class="release-feature"></span> Game test loop and Robo test now support the <a href="//developer.android.com/google/play/licensing/index.html">App Licensing</a> service offered by Google Play for apps in the production channel. To successfully check licensing when testing your app with <span class="notranslate">Test Lab</span>, you must publish your app to the production channel in the Play store. To test your app in the alpha or beta channel using <span class="notranslate">Test Lab</span>, remove the licensing check before uploading your app to <span class="notranslate">Test Lab</span>.</li> </ul> <h2 id="sdk_version_1100_-_june_7_2017" data-text="SDK Version 11.0.0 - June 7, 2017" tabindex="-1"><a name="20170607">SDK Version 11.0.0 - June 7, 2017</a></h2> <h3 id="firebase-sdk-for-android" data-text="Firebase SDK for Android" tabindex="-1"><span class="notranslate">Firebase</span> SDK for <span class="notranslate">Android</span></h3> <ul> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">setProjectId()</code> method to the <code translate="no" dir="ltr">FirebaseOptions</code> class. This method sets the Firebase project or Google Cloud project ID for an app.</li> </ul> <h3 id="analytics_1" data-text="Analytics" tabindex="-1"><span class="notranslate">Analytics</span></h3> <ul> <li><span class="release-feature"></span> The <code translate="no" dir="ltr">AppMeasurementJobService</code> class is now available. It provides a <code translate="no" dir="ltr">[JobService](https://developer.android.com/reference/android/app/job/JobService.html)</code> to <span class="notranslate">Analytics</span>.</li> <li><span class="release-feature"></span> <span class="notranslate">Analytics</span> now supports analytics for Android Instant Apps. Specifically, instant apps will log a <code translate="no" dir="ltr">first_visit</code> event instead of a <code translate="no" dir="ltr">first_open</code> event and a <code translate="no" dir="ltr">first_visit_time</code> event instead of a <code translate="no" dir="ltr">first_open_time</code> event.</li> <li><span class="release-feature"></span> The following events is now reserved as part of the integration of <span class="notranslate">Analytics</span> with <span class="notranslate">AdMob</span> : <code translate="no" dir="ltr">ad_impression</code>, <code translate="no" dir="ltr">ad_click</code>, <code translate="no" dir="ltr">ad_query ad_exposure</code>, <code translate="no" dir="ltr">adunit_exposure</code>, and <code translate="no" dir="ltr">ad_activeiew</code>.</li> <li><span class="release-feature"></span> The <code translate="no" dir="ltr">screen_view</code> event is now reserved and is logged as a result of screen-tracking. To learn more about screen-tracking, see <a href="/docs/analytics/screenviews">Track Screenviews</a>.</li> </ul> <h3 id="authentication_5" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><p><span class="release-feature"></span> Firebase Authentication Using Phone Numbers is now available!</p> <ul> <li>Added the <code translate="no" dir="ltr">getPhoneNumber()</code> and <code translate="no" dir="ltr">updatePhoneNumber()</code> methods to the <code translate="no" dir="ltr">FirebaseUser</code> class, and also added the <code translate="no" dir="ltr">getPhoneNumber()</code> method to the <code translate="no" dir="ltr">UserInfo</code> class. These methods get and update the phone numbers of users.</li> <li>Added the <code translate="no" dir="ltr">PhoneAuthCredential</code>, <code translate="no" dir="ltr">PhoneAuthProvider</code>, <code translate="no" dir="ltr">PhoneAuthProvider.ForceResendingToken</code>, and <code translate="no" dir="ltr">PhoneAuthProvider.OnVerificationStateChangedCallbacks</code> classes to support authentication using phone numbers.</li> <li>To learn more, see <a href="https://firebase.google.com/docs/auth/android/phone-auth">Authenticate with Firebase using Phone Numbers on Android</a>.</li> </ul></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">getIdToken()</code>method to the <code translate="no" dir="ltr">FirebaseUser</code> class. This method gets an Authentication ID token for the user, and replaces the <code translate="no" dir="ltr">getToken()</code>method, which is now deprecated.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">reauthenticateAndRetrieveData()</code>method to the <code translate="no" dir="ltr">FirebaseUser</code> class. This method re-authenticates a user and returns the profile data for that user&#39;s account.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">AdditionalUserInfo</code> class. This class provides storage for ID provider-specific user data for the following ID providers: Facebook, GitHub, Twitter and Google.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">getAdditionalUserInfo()</code> method to the <code translate="no" dir="ltr">AuthResult</code> class. This method returns ID provider-specific user data contained in an <code translate="no" dir="ltr">AdditionalUser</code> object.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">FirebaseAuth.IdTokenListener</code> class. This class creates a listener that is called when the ID token changes, such as when a user signs in or signs out.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">addIdTokenListener()</code> and <code translate="no" dir="ltr">removeIdTokenListener()</code> methods to the FirebaseAuth class. These methods register or unregister <code translate="no" dir="ltr">FirebaseAuth.IdTokenListener</code> objects.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">FirebaseAuthEmailException</code> class. This class represents an exception that results from attempting to send an email message using Firebase Authentication.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">OAuthProvider</code> class. This class represents the login authentication provider for a generic OAuth2 provider.</p></li> </ul> <h3 id="crash-reporting_1" data-text="Crash Reporting" tabindex="-1"><span class="notranslate">Crash Reporting</span></h3> <ul> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">isCrashCollectionEnabled()</code> method to the <code translate="no" dir="ltr">FirebaseCrash</code> class. This method determines whether <span class="notranslate">Crash Reporting</span> is enabled or disabled.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">setCrashCollectionEnabled()</code> method to the <code translate="no" dir="ltr">FirebaseCrash</code> class. This method enables or disables <span class="notranslate">Crash Reporting</span>.</li> </ul> <h3 id="app-indexing_4" data-text="App Indexing" tabindex="-1"><span class="notranslate">App Indexing</span></h3> <ul> <li><span class="release-changed"></span> The <code translate="no" dir="ltr">AndroidAppUri</code> class is now available in the <code translate="no" dir="ltr">com.google.firebase.appindexing</code> package. This class also exists in the deprecated <code translate="no" dir="ltr">com.google.android.gms.appindexing</code> package.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">AggregateRatingBuilder</code>, <code translate="no" dir="ltr">GeoShapeBuilder</code>, <code translate="no" dir="ltr">LocalBusinessBuilder</code>, <code translate="no" dir="ltr">PostalAddressBuilder</code>, <code translate="no" dir="ltr">ReservationBuilder</code> and <code translate="no" dir="ltr">RestaurantBuilder</code> classes. These classes construct various types of <code translate="no" dir="ltr">Indexable</code> objects. To learn more about the data contained in these <code translate="no" dir="ltr">Indexable</code> objects, see <a href="https://schema.org/AggregateRating">AggregateRating</a>, <a href="https://schema.org/GeoShape">GeoShape</a>, <a href="https://schema.org/LocalBusiness">LocalBusiness</a>, <a href="https://schema.org/PostalAddress">PostalAddress</a>, <a href="https://schema.org/Reservation">Reservation</a>, and <a href="https://schema.org/Restaurant">Restaurant</a>.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">aggregateRatingBuilder()</code>, <code translate="no" dir="ltr">geoShapeBuilder()</code>, <code translate="no" dir="ltr">localBusinessBuilder()</code>, <code translate="no" dir="ltr">postalAddressBuilder()</code>, <code translate="no" dir="ltr">reservationBuilder()</code> and <code translate="no" dir="ltr">restaurantBuilder()</code> methods to the <code translate="no" dir="ltr">Indexables</code> class. These methods create various types of <code translate="no" dir="ltr">Indexable</code> objects.</li> </ul> <h3 id="dynamic-links_2" data-text="Dynamic Links" tabindex="-1"><span class="notranslate">Dynamic Links</span></h3> <ul> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">DynamicLink</code> and <code translate="no" dir="ltr">DynamicLink.Builder</code> classes. These classes are used for constructing Dynamic Links, with a set of methods for setting various types of Dynamic Link parameters. Also added the following related classes:</p> <ul> <li><code translate="no" dir="ltr">DynamicLink.IosParameters</code> and <code translate="no" dir="ltr">DynamicLink.IosParameters.Builder</code></li> <li><code translate="no" dir="ltr">DynamicLink.AndroidParameters</code> and <code translate="no" dir="ltr">DynamicLink.AndroidParameters.Builder</code></li> <li><code translate="no" dir="ltr">DynamicLink.GoogleAnalyticsParameters</code> and <code translate="no" dir="ltr">DynamicLink.GoogleAnalyticsParameters.Builder</code></li> <li><code translate="no" dir="ltr">DynamicLink.ItunesConnectAnalyticsParameters</code> and <code translate="no" dir="ltr">DynamicLink.ItunesConnectAnalyticsParameters.Builder</code></li> <li><code translate="no" dir="ltr">DynamicLink.SocialMetaTagParameters</code> and <code translate="no" dir="ltr">DynamicLink.SocialMetaTagParameters.Builder</code></li> </ul></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">FirebaseDynamicLinks</code> class. This class provides access to Dynamic Links that are received by an app at launch.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">PendingDynamicLinkData</code> class. This class provides accessor methods to Dynamic Link data.</p></li> <li><p><span class="release-feature"></span> Added the <code translate="no" dir="ltr">ShortDynamicLink</code>, <code translate="no" dir="ltr">ShortDynamicLink.Suffix,</code>and <code translate="no" dir="ltr">ShortDynamicLink.Warning</code> classes. These classes provide short dynamic links, an option for generating short dynamic link URLs, and warnings related to short Dynamic Links.</p></li> </ul> <h3 id="invites" data-text="Invites" tabindex="-1"><span class="notranslate">Invites</span></h3> <ul> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">FirebaseAppInvite</code> class. This class replaces the <a href="https://developers.google.com/android/reference/com/google/android/gms/appinvite/package-summary"><code translate="no" dir="ltr">AppInvite</code></a> class, which is now deprecated.</li> </ul> <h2 id="sdk_version_1026_-_may_17_2017" data-text="SDK Version 10.2.6 - May 17, 2017" tabindex="-1"><a name="20170517">SDK Version 10.2.6 - May 17, 2017</a></h2> <h3 id="performance-monitoring_5" data-text="Performance Monitoring" tabindex="-1"><span class="notranslate">Performance Monitoring</span></h3> <ul> <li><span class="release-feature"></span> The initial public beta release of the <span class="notranslate">Firebase Performance Monitoring</span> SDK for Android is now available.To get started with this SDK, see <a href="/docs/perf-mon/get-started-android">Get Started with Firebase Performance Monitoring for Android</a>.</li> </ul> <h3 id="test-lab_2" data-text="Test Lab" tabindex="-1"><span class="notranslate">Test Lab</span></h3> <ul> <li><span class="release-feature"></span> Performance metrics are now available when you run tests using Firebase Test Lab for Android on physical devices with API level 21 and higher. The following metrics are available: <ul> <li>For all apps: CPU usage, memory usage, and network activity (send/receive)</li> <li>For games that use the <a href="https://developer.android.com/reference/android/view/SurfaceView.html"><code translate="no" dir="ltr">SurfaceView</code></a> class, frames per second (fps) are also measured.</li> </ul></li> <li><span class="release-feature"></span> Firebase Test Lab now has beta support for testing Android games created using game frameworks (for example, Unity) if those games include game test loops. To learn more, see <a href="/docs/test-lab/game-loop">Firebase Test Lab Game Test Loops</a>.</li> </ul> <h3 id="cloud-messaging_4" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-feature"></span> Added support for Android O notification channels. Android clients can specify a default <a href="https://developer.android.com/preview/features/notification-channels.html">notification channel</a> in the <a href="/docs/cloud-messaging/android/client#manifest">application manifest</a> which will be used if the downstream message does not contain a <code translate="no" dir="ltr">notification_channel</code> parameter.</li> </ul> <h2 id="sdk_version_1024_-_april_28_2017" data-text="SDK Version 10.2.4 - April 28, 2017" tabindex="-1"><a name="20170428">SDK Version 10.2.4 - April 28, 2017</a></h2> <h3 id="cloud-storage_3" data-text="Cloud Storage" tabindex="-1"><span class="notranslate">Cloud Storage</span></h3> <ul> <li><span class="release-fixed"></span> The <code translate="no" dir="ltr">getParent()</code> method now returns <code translate="no" dir="ltr">null</code> if called on the root of a <span class="notranslate">Cloud Storage</span> path, aligning the behavior of the Android SDK with other <span class="notranslate">Cloud Storage</span> SDKs.</li> <li><span class="release-fixed"></span> The <code translate="no" dir="ltr">getDownloadURL()</code> method now correctly escapes spaces in URLs as <code translate="no" dir="ltr">%20</code>, rather than <code translate="no" dir="ltr">+</code>.</li> </ul> <h2 id="sdk_version_1021_-_march_21_2017" data-text="SDK Version 10.2.1 - March 21, 2017" tabindex="-1"><a name="20170321">SDK Version 10.2.1 - March 21, 2017</a></h2> <h3 id="cloud-messaging_5" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-changed"></span> The Firebase Android SDK (v10.2.1) includes updates to provide compatibility with Android O Developer Preview 1. The most significant updates are internal changes to the <span class="notranslate">Firebase Cloud Messaging</span> (<span class="notranslate">FCM</span>) libraries and a change in the guaranteed lifecycle of <span class="notranslate">FCM</span> callbacks to 10 seconds, after which Android O considers such callbacks eligible for termination. For more information on handling <span class="notranslate">FCM</span> messages on Android O, see <a href="https://firebase.googleblog.com/2017/03/using-firebase-cloud-messaging-with.html">The Firebase Blog</a>.</li> </ul> <h2 id="sdk_version_102_-_february_15_2017" data-text="SDK Version 10.2 - February 15, 2017" tabindex="-1"><a name="20170215">SDK Version 10.2 - February 15, 2017</a></h2> <h3 id="analytics_2" data-text="Analytics" tabindex="-1"><span class="notranslate">Analytics</span></h3> <ul> <li><span class="release-feature"></span> Added the ability to log events used to supply referral details of a re-engagement campaign to the <code translate="no" dir="ltr">FirebaseAnalytics.Event</code> class and related parameters to the <code translate="no" dir="ltr">FirebaseAnalytics.Param</code> class.</li> <li><span class="release-feature"></span> Added the ability to get app instance IDs using the <code translate="no" dir="ltr">getAppInstanceId()</code> method in the <code translate="no" dir="ltr">FirebaseAnalytics</code> class.</li> </ul> <h3 id="realtime-database_1" data-text="Realtime Database" tabindex="-1"><span class="notranslate">Realtime Database</span></h3> <ul> <li><span class="release-feature"></span> Added the ability to get the Firebase Database instance for a given URL using the <code translate="no" dir="ltr">getInstance()</code> method in the <code translate="no" dir="ltr">FirebaseDatabase</code> class.</li> </ul> <h3 id="test-lab_3" data-text="Test Lab" tabindex="-1"><span class="notranslate">Test Lab</span></h3> <ul> <li><span class="release-feature"></span> Robo test can now complete sign-in screens that use test account credentials that you provide when you configure your test matrix, both in the <a href="/docs/test-lab/robo-ux-test#test_account_sign-in_and_predefined_text_input"><span class="notranslate">Firebase</span> console</a>, and using the <a href="/docs/test-lab/command-line#custom_login_and_text_input_with_robo_test">gcloud command-line</a>.</li> <li><span class="release-feature"></span> Added support for saving test matrix templates for future use in the <span class="notranslate">Firebase</span> console.</li> </ul> <h2 id="february_8_2017" data-text="February 8, 2017" tabindex="-1"><a name="20170208">February 8, 2017</a></h2> <h3 id="test-lab_4" data-text="Test Lab" tabindex="-1"><span class="notranslate">Test Lab</span></h3> <ul> <li><span class="release-feature"></span> Low-resolution medium DPI (MDPI) virtual devices are now available in <span class="notranslate">Test Lab</span>. You can run Robo test and instrumentation tests on your app more quickly with the <span class="notranslate">Test Lab</span> <em>generic low-resolution MDPI phone</em> virtual device than with other virtual devices. The MDPI virtual device is available on API levels 23, 24 and 25. To use this device from the gcloud command-line interface, use the <code translate="no" dir="ltr">NexusLowRes</code> model ID.</li> </ul> <h2 id="february_7_2017" data-text="February 7, 2017" tabindex="-1"><a name="20170207">February 7, 2017</a></h2> <h3 id="crash-reporting_2" data-text="Crash Reporting" tabindex="-1"><span class="notranslate">Crash Reporting</span></h3> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Crash Reporting</span> gradle plugin for Android version 1.0.5 is now available. This update adds the ability to specify Gradle properties to use when uploading a ProGuard mapping file, and also removes the requirement to use a <code translate="no" dir="ltr">google-services.json</code> file in your app. To learn more, see <a href="/docs/crash/android#deobfuscate_proguard_labels">Uploading ProGuard Mapping Files with Gradle</a>.</li> </ul> <h2 id="january_17_2017" data-text="January 17, 2017" tabindex="-1"><a name="20170117">January 17, 2017</a></h2> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Firebase</span> console now lets you select the specific device and Android API level combinations to use when testing your app. This makes it easy to focus your testing; for example, when you are validating a bug fix.</li> </ul> <h2 id="december_15_2016" data-text="December 15, 2016" tabindex="-1">December 15, 2016</h2> <ul> <li><span class="release-feature"></span> The <span class="notranslate">Crash Reporting</span> gradle plugin for Android is now available. This plugin simplifies the process of uploading ProGuard mapping files for the deobfuscation of stack traces. To learn more, see <a href="/docs/crash/android#deobfuscate_proguard_labels">Uploading ProGuard Mapping Files with Gradle</a>.</li> </ul> <h2 id="sdk_version_100_-_november_21_2016" data-text="SDK Version 10.0 - November 21, 2016" tabindex="-1"><a name="10.0">SDK Version 10.0 - November 21, 2016</a></h2> <h3 id="analytics_3" data-text="Analytics" tabindex="-1"><span class="notranslate">Analytics</span></h3> <ul> <li><span class="release-changed"></span> Increased the maximum length of event names and parameter name to 40 characters, and the maximum length of string parameter values to 100 characters.</li> </ul> <h3 id="authentication_6" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><span class="release-feature"></span> Added APIs to support out-of-band codes that can be used to reset passwords, verify identity using email, and recover access to email. To learn more, see the API reference documentation for the <a href="/docs/reference/android/com/google/firebase/auth/ActionCodeResult#RECOVER_EMAIL">ActionCodeResult</a> and <a href="/docs/reference/android/com/google/firebase/auth/FirebaseAuthActionCodeException">FirebaseAuthActionCodeException</a> classes.</li> </ul> <h3 id="firebase-test-lab" data-text="Firebase Test Lab" tabindex="-1"><span class="notranslate">Firebase Test Lab</span></h3> <ul> <li><span class="release-changed"></span> <span class="notranslate">Test Lab</span> provides virtual devices running the latest build of Android 7.1 Preview. You can run tests on these devices as often as you need, at no cost, until the end of the Developer Preview in December. To learn more, see <a href="//developer.android.com/preview/download.html#testWithFTL">Test the Android 7.1 Preview with Firebase Test Lab</a>.</li> </ul> <h3 id="app-indexing_5" data-text="App Indexing" tabindex="-1"><span class="notranslate">App Indexing</span></h3> <ul> <li><span class="release-feature"></span> The new <span class="notranslate">Firebase App Indexing</span> SDK lets apps add a personal content index and log user actions, in addition to making your app discoverable by Google Search. To use the new <span class="notranslate">App Indexing</span> SDK, update your Gradle dependency to <code translate="no" dir="ltr">com.google.firebase:firebase-appindexing:10.0.0</code>. For more information, see the <a href="//firebase.google.com/docs/app-indexing/">Firebase App Indexing Introduction</a> and the <a href="/docs/reference/android/com/google/firebase/appindexing/package-summary">Firebase App Indexing API Reference</a>.</li> </ul> <h3 id="cloud-messaging_6" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused extra alarms to be incorrectly set, resulting in crashes with <strong>Too Many Alarms</strong> in the stack trace on some Samsung devices.</li> </ul> <h2 id="sdk_version_98_-_october_24_2016" data-text="SDK Version 9.8 - October 24, 2016" tabindex="-1"><a name="9.8">SDK Version 9.8 - October 24, 2016</a></h2> <h3 id="analytics_4" data-text="Analytics" tabindex="-1"><span class="notranslate">Analytics</span></h3> <ul> <li><span class="release-feature"></span> Added screen tracking support. Each app&#39;s current <strong>Activity</strong> is automatically tracked. The current screen is tracked with the <code translate="no" dir="ltr">firebase_screen_class</code> parameter with every logged event, which provides valuable context. In addition to automatic screen tracking, you can manually track screens using the <a href="/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics#setCurrentScreen(android.app.Activity,%20java.lang.String,%20java.lang.String)">FirebaseAnalytics#setCurrentScreen</a> method. This adds the <code translate="no" dir="ltr">firebase_screen</code> parameter to every event logged while those screens are visible to app users.</li> </ul> <h3 id="cloud-messaging_7" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-feature"></span> Improved the reliability of message delivery to Android Wear devices that are paired with an iOS device.</li> <li><span class="release-feature"></span> Added the ability to customize the default notification icon and color using <a href="/docs/cloud-messaging/android/receive#edit-the-app-manifest"><code translate="no" dir="ltr">AndroidManifest.xml</code> metadata</a>.</li> </ul> <h3 id="cloud-storage_4" data-text="Cloud Storage" tabindex="-1"><span class="notranslate">Cloud Storage</span></h3> <ul> <li><span class="release-feature"></span> Added the <a href="/docs/reference/android/com/google/firebase/storage/StorageTask#addOnCompleteListener(com.google.android.gms.tasks.OnCompleteListener%3CTResult%3E)"><code translate="no" dir="ltr">StorageTask#addOnCompleteListener</code></a> API that informs you when a Task completes or fails, and the <a href="/docs/reference/android/com/google/firebase/storage/StorageTask#continueWith(java.util.concurrent.Executor,%20com.google.android.gms.tasks.Continuation%3CTResult,%20TContinuationResult%3E)"><code translate="no" dir="ltr">StorageTask#continueWith</code></a> API that supports creating app logic with chained dependencies.</li> <li><span class="release-fixed"></span> Fixed an issue that could cause an exception when uploads or downloads time out when a device&#39;s WiFi is off.</li> </ul> <h2 id="sdk_version_96_-_september_21_2016" data-text="SDK Version 9.6 - September 21, 2016" tabindex="-1"><a name="9.6">SDK Version 9.6 - September 21, 2016</a></h2> <h3 id="analytics_5" data-text="Analytics" tabindex="-1"><span class="notranslate">Analytics</span></h3> <ul> <li><span class="release-feature"></span> Added tracking for the source of app install referrals when an app with <span class="notranslate">Analytics</span> is installed from the Play Store.</li> <li><span class="release-fixed"></span> Existing users who update to an <span class="notranslate">Analytics</span>-enabled version of an app are no longer included in <code translate="no" dir="ltr">first_open</code> metrics. This correction could cause a drop in <code translate="no" dir="ltr">first_open</code> metrics.</li> <li><span class="release-changed"></span> Conversion events are now uploaded within seconds of being logged.</li> </ul> <h3 id="cloud-messaging_8" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused apps using <span class="notranslate">Cloud Messaging</span> to crash due to a race condition, and that resulted in a <code translate="no" dir="ltr">NullPointerException</code> and a <code translate="no" dir="ltr">ConcurrentModificationException</code>.</li> </ul> <h3 id="authentication_7" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><span class="release-feature"></span> Added new API methods, <code translate="no" dir="ltr">FirebaseUser#sendEmailVerification()</code> and <code translate="no" dir="ltr">FirebaseUser#isEmailVerified()</code> to verify a user&#39;s email address.</li> </ul> <h3 id="realtime-database_2" data-text="Realtime Database" tabindex="-1"><span class="notranslate">Realtime Database</span></h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that could cause <span class="notranslate">Realtime Database</span> access tokens to expire, resulting in <code translate="no" dir="ltr">Authentication failed: invalid_token</code> errors.</li> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">hardAssert failed</code> exception that could occur when offline persistence is enabled and certain <code translate="no" dir="ltr">startAt()</code> and <code translate="no" dir="ltr">endAt()</code> queries were used.</li> <li><span class="release-fixed"></span> Fixed an issue that caused Android apps to cancel unsent transactions when disconnecting from <span class="notranslate">Firebase Realtime Database</span>, rather than queuing them to be sent later.</li> <li><span class="release-fixed"></span> Fixed an issue where passing a derived class to <code translate="no" dir="ltr">DatabaseReference#setValue()</code> did not correctly save the properties from the superclass.</li> <li><span class="release-changed"></span> Updated the <code translate="no" dir="ltr">DatabaseReference#updateChildren()</code> method to accept Java objects (POJOs), providing parity with the handling of these objects by the <code translate="no" dir="ltr">setValue()</code>method.</li> </ul> <h3 id="dynamic-links_3" data-text="Dynamic Links" tabindex="-1"><span class="notranslate">Dynamic Links</span></h3> <ul> <li><span class="release-feature"></span> <span class="notranslate">Analytics</span> events are now automatically logged when users open your app from a <span class="notranslate">Dynamic Link</span>, open your app for the first time from a <span class="notranslate">Dynamic Link</span>, and update your app from a <span class="notranslate">Dynamic Link</span>.</li> </ul> <h2 id="sdk_version_94_-_august_1_2016" data-text="SDK Version 9.4 - August 1, 2016" tabindex="-1"><a name="9.4">SDK Version 9.4 - August 1, 2016</a></h2> <h3 id="cloud-messaging_9" data-text="Cloud Messaging" tabindex="-1"><span class="notranslate">Cloud Messaging</span></h3> <aside class="note"><strong>Note:</strong><span> the Notifications composer uses the <span class="notranslate">Cloud Messaging</span> SDK.</span></aside> <ul> <li><span class="release-changed"></span> Expanded gestures are now supported for messages, allowing the Android UI to display multiple lines when the body of a notification exceeds a single line.</li> <li><span class="release-fixed"></span> Fixed a bug that causes a <code translate="no" dir="ltr">NullPointerException</code> in some multi-process configurations.</li> <li><span class="release-fixed"></span> <code translate="no" dir="ltr">RemoteMessage#getMessageId()</code> now returns the correct message-id for received messages. Previously, it returned <code translate="no" dir="ltr">null</code>.</li> </ul> <h3 id="remote-config" data-text="Remote Config" tabindex="-1"><span class="notranslate">Remote Config</span></h3> <ul> <li><span class="release-fixed"></span> Updated the handling of <span class="notranslate">Remote Config</span> data (including parameters and metadata such as fetch history) to remove app data when an app is un-installed or when the app user deletes app data.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">getKeysByPrefix()</code> API method to allow developers to find parameter keys based on a key prefix.</li> </ul> <h3 id="firebase-console" data-text="Firebase console" tabindex="-1"><span class="notranslate">Firebase</span> console</h3> <ul> <li><span class="release-changed"></span> The following unused fields are no longer included in <code translate="no" dir="ltr">google-services.json</code> files: <code translate="no" dir="ltr">cloud_messaging_service</code>, <code translate="no" dir="ltr">google_signin_service</code> and <code translate="no" dir="ltr">ads_service</code>.</li> </ul> <h2 id="sdk_version_92_-_june_27_2016" data-text="SDK Version 9.2 - June 27, 2016" tabindex="-1"><a name="9.2">SDK Version 9.2 - June 27, 2016</a></h2> <h3 id="authentication_8" data-text="Authentication" tabindex="-1"><span class="notranslate">Authentication</span></h3> <ul> <li><span class="release-fixed"></span> Minor improvements to error handling and error messages.</li> </ul> <h3 id="crash-reporting_3" data-text="Crash Reporting" tabindex="-1"><span class="notranslate">Crash Reporting</span></h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused apps that call <code translate="no" dir="ltr">FirebaseCrash.log</code>, <code translate="no" dir="ltr">FirebaseCrash.logcat</code> and <code translate="no" dir="ltr">FirebaseCrash.report</code> to crash if installed on a device that does not have Google Play services installed.</li> </ul> <h3 id="realtime-database_3" data-text="Realtime Database" tabindex="-1"><span class="notranslate">Realtime Database</span></h3> <ul> <li><span class="release-feature"></span> You can now use a new <code translate="no" dir="ltr">@PropertyName</code> attribute to specify the name to use when serializing a field from a Java model class to the Database. This replaces the <code translate="no" dir="ltr">@JsonProperty</code> attribute.</li> </ul> <h3 id="dynamic-links_4" data-text="Dynamic Links" tabindex="-1"><span class="notranslate">Dynamic Links</span></h3> <ul> <li><span class="notranslate">Firebase</span> SDK for <span class="notranslate">Android</span>: <ul> <li><span class="release-feature"></span> <span class="notranslate">Google Analytics</span> now logs all <strong>app open</strong> events driven from user clicks on <span class="notranslate">Dynamic Links</span>.</li> </ul></li> </ul> </div> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/icon.svg" project-support-url="https://firebase.google.com/support/" > <button> Send feedback </button> </devsite-feedback> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2025-02-07 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/icon.svg" project-support-url="https://firebase.google.com/support/" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-07 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Learn</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/docs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Developer guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/reference/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > SDK & API reference </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/samples/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/libraries/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Libraries </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//github.com/firebase/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > GitHub </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Stay connected</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//firebase.blog" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Check out the blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.reddit.com/r/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Find us on Reddit </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//x.com/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Follow on X </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/user/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Subscribe on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/events" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Attend an event </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/support/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Contact support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//stackoverflow.com/questions/tagged/firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Stack Overflow </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//firebase.community/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Slack community </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//groups.google.com/forum/#!forum/firebase-talk" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Google group </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support/releases" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Release notes </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/brand-guidelines/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Brand guidelines </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support/faq/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > FAQs </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/lockup-google-for-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//developers.google.com/products/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-N84485&#34;, &#34;purpose&#34;: 0}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Firebase&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;firebase&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <firebase-gtm></firebase-gtm> <firebase-utm></firebase-utm> <script nonce="jJDkzj3NmwHj/jq/bIDzV7s8+V/5u+"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/js/app_loader.js', '[4,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase","https://firebase-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/firebase/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/favicon.png","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/firebase/images/lockup.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","firebase.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Profiles__enable_public_developer_profiles","BookNav__enable_tenant_cache_key","Search__enable_suggestions_from_borg","Cloud__enable_cloudx_ping","Profiles__enable_recognition_badges","Cloud__enable_free_trial_server_call","Profiles__enable_developer_profiles_callout","MiscFeatureFlags__enable_firebase_utm","Profiles__enable_completecodelab_endpoint","MiscFeatureFlags__developers_footer_dark_image","Profiles__enable_release_notes_notifications","Profiles__require_profile_eligibility_for_signin","MiscFeatureFlags__developers_footer_image","DevPro__enable_cloud_innovators_plus","Cloud__enable_cloud_facet_chat","Profiles__enable_page_saving","MiscFeatureFlags__enable_dark_theme","TpcFeatures__enable_mirror_tenant_redirects","Profiles__enable_profile_collections","Experiments__reqs_query_experiments","Cloud__enable_cloud_shell_fte_user_flow","MiscFeatureFlags__enable_project_variables","Cloud__enable_cloud_shell","Analytics__enable_clearcut_logging","Concierge__enable_pushui","Profiles__enable_join_program_group_endpoint","Profiles__enable_dashboard_curated_recommendations","CloudShell__cloud_shell_button","Profiles__enable_completequiz_endpoint","CloudShell__cloud_code_overflow_menu","Significatio__enable_by_tenant","Search__enable_ai_search_summaries","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__emergency_css","Concierge__enable_concierge","TpcFeatures__enable_unmirrored_page_left_nav","EngEduTelemetry__enable_engedu_telemetry","Profiles__enable_complete_playlist_endpoint","Profiles__enable_stripe_subscription_management","MiscFeatureFlags__enable_explain_this_code","Search__enable_dynamic_content_confidential_banner","Cloud__enable_llm_concierge_chat","Cloud__enable_legacy_calculator_redirect","MiscFeatureFlags__enable_view_transitions","Search__enable_page_map","MiscFeatureFlags__enable_variable_operator","DevPro__enable_developer_subscriptions","Search__enable_ai_eligibility_checks","Profiles__enable_awarding_url","Cloud__enable_cloud_dlp_service"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[4,"firebase","Firebase","firebase.google.com",null,"firebase-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1]],null,null,null,[1,null,1],[1,1,null,null,1]],null,[68,null,null,null,null,null,"/images/lockup.svg","/images/touchicon-180.png",null,null,null,1,1,1,null,null,null,null,null,null,null,2,null,null,null,"/images/lockup.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,20,22,23,29,37],null,[[],[1,1]],[[null,null,null,null,["UA-24532603-9"],["GTM-N84485"],null,null,null,null,[["UA-24532603-9",1]],[["GTM-N84485",1]],1],[[2,5],[36,4],[46,8],[17,1],[16,2]],null,1],null,4],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10