Google I/O 2023 is here, and as we highlighted in the developer keynote, we’re focused on bringing the power of generative AI to our products to transform development and unlock innovation. A great example of this is I/O Flip, our new AI card game brought to life at incredible speed with Firebase backend products like Authentication, Firestore, and Cloud Storage. It shows how amazing experiences can be created by using Firebase alongside other Google technologies like Flutter, MakerSuite, and the PaLM API. Now, Firebase can also help you use the PaLM API - the same foundational model behind our own AI experiences - through new Extensions so you can bring AI into your own apps (more on that below).
The pace of innovation with AI is exciting, but we know that you also need tools and services that can integrate with these new AI products to help you work efficiently and get to market quickly. That’s why, we’re strengthening our infrastructure and improving integration across our toolchain to make full stack development more seamless and simpler. With these updates to Firebase, you can accelerate setup tasks, start building faster, and improve the quality of your app across many platforms to make it the best it can be–for both users and your business. Read on to learn what’s new, and don’t forget to check out all of our technical sessions!
Build faster with powerful, fully-managed infrastructure
New AI Extensions powered by the PaLM API
Built on Google’s commitment to open development, Firebase Extensions are pre-packaged serverless solutions that let you quickly add new capabilities to your apps. Extensions are configurable, require no maintenance, and automatically scale to match your needs. We’re thrilled to unveil several new Extensions that let you harness Google’s generative AI capabilities to add smart features into your app. For example, the new “Chatbot with PaLM API” extension, in preview, connects the PaLM API with Firestore, so you can easily add intelligent chat capabilities to your app with Google’s latest generative AI technology. The “Chatbot with PaLM API” is just one example, you can also build a fully flexible secure backend or configure the PaLM API for various predefined scenarios.
Over the past few months, we’ve added more than 20 new Extensions, built by Google, our third-party partners, and passionate members of our community.
Introducing the Extensions publishing experience
If you’re a developer with an idea for a new extension - or if you want to help people get started with your business’ API - you can now use the Extensions publishing experience to build, publish, and share your own extensions with millions of Firebase and Google Cloud developers across the world. This is the first step towards building a thriving ecosystem of extensions that solve countless problems to benefit the entire Google developer community! Check out the Firebase Extensions Hub at extensions.dev to explore extensions and find documentation for building and publishing your first extension.
Cloud Functions for Firebase 2nd gen supports Python
Cloud Functions for Firebase lets you run backend code in response to events without worrying about provisioning, maintaining, scaling, or decommissioning servers. Last year, we unveiled the public preview of Cloud Functions second generation (2nd gen), giving you a more flexible and efficient way to run functions, underpinned by Cloud Run. Now, Cloud Functions 2nd gen is graduating to general availability with:
- Up to 32 gigabytes of memory to handle demanding workloads
- Concurrency, which allows each instance of a function to handle up to 1000 requests in parallel resulting in fewer cold starts, improved latency, and often, lower cost too
- Support for triggers to stitch together many Firebase products, including Firestore, so you can trigger 2nd gen functions based on writes to a Firestore collection
Cloud Functions (2nd gen) includes concurrency, allowing a single instance to handle multiple requests at a time
On top of all of that, we’re thrilled to announce the public preview of Python support in Cloud Functions (2nd gen)! This will enable you to write functions in more ways using your preferred languages and toolchains, and let you take advantage of the huge ecosystem of Python packages and open source solutions for tasks like machine learning, data processing, and scientific analysis.
Use Cloud Functions (2nd gen) to build your backend compute on modern Google Cloud infrastructure more cost effectively and with great scalability by following our new getting started guide, migrating your 1st gen functions, or auto-generating Python or Node starter code with the Firebase CLI:
OR queries in Firestore
Cloud Firestore is our NoSQL document database that lets you store, sync, and query data for your mobile and web apps at scale, without ever touching a server. Last year, we announced support for a COUNT aggregation query, now generally available, which gives you a simple and scalable method of returning the number of matching documents of a query with just a few lines of code. Now, we’re introducing support for generic OR queries in Firestore! This will give you the ability to find documents that meet one or more criteria, allowing you to combine multiple conditions in multiple fields, such as finding hotels located in specific neighborhoods or hotels that have at least four stars.
You can also combine the OR operator with ORDER BY to organize your results. For instance, you can sort the hotels by the highest to the lowest number of stars. To use OR queries, update to the latest version of the SDK and check out our documentation for more information.
Finally, we’re also extending the IN operator to support up to 30 matching values, which is an increase from a previous limit of 10 matching values.
final citiesRef = db.collection("cities"); final cityList = ["USA", "Japan", "Argentina", "Brazil", "Chile", "Bolivia", "Paraguay", "Uruguay", "UK", "Canada", "Mexico", "Mozambique"]; final cities = citiesRef.where("country", whereIn: cityList);
This increase allows you to specify more fields in your IN queries making them more powerful and flexible for querying your data.
Announcing App Check for Authentication and games
App Check protects your Firebase, Cloud, and custom backend resources from unauthorized access and abuse - such as billing fraud, phishing, and app impersonation - by verifying that traffic is coming from your app on an untampered device. App Check already protects a number of Firebase services, and today, we’re adding Authentication with Identity Platform to that list, so upgrade now to get started.
We’ve also made it possible to protect your mobile games with App Check. If you’re a game developer, you know that in-game cheating, like modded game clients and unreasonable high scores, can drive players away and reduce your revenue because no one likes playing a game with a cheater. That’s why we’re pleased to announce that App Check SDKs for Unity and C++ are now available to help you combat the most common forms of cheating! To learn more, check out our documentation.
For those of you who work with sensitive actions, such as user sign-in, hardware operations, or expensive computations, you’ll be happy to hear that we’ve added replay protection to App Check for custom backends and Cloud Functions for Firebase. Enroll in this protection to keep your sensitive endpoints safe.
Terraform integration to automate provisioning and configuration workflows
Terraform is a widely used infrastructure–as-code tool that automates provisioning and configuration of cloud resources to ensure your backend is consistent across your testing, staging, and production environments. Many of you may also use it to onboard new team members or to quickly configure multiple projects with similar needs, like security rules. We’re thrilled to announce that Firebase now supports Terraform resources for projects, apps, and key cloud resources - with more coming soon! To manage your Firebase projects with Terraform check out the code samples linked in our documentation.
Deep integrations across platforms
Deploy Astro, Nuxt, SvelteKit with Firebase Hosting
Firebase Hosting lets you build and deploy your websites globally without managing any infrastructure, with integrated security and a streamlined developer experience. Last year, we released several experimental updates that took Hosting beyond static websites, and made it possible to deploy dynamic web frameworks, such as Next.js and Angular Universal, with the same single CLI command you’re familiar with:
When you call
firebase deploy our CLI will detect which framework you are using automatically, run the build, generate the Cloud Function when required, set up any needed configuration, and handle the entire deployment.
Now, we’ve added experimental support for even more server based frameworks, including SvelteKit, Astro, and Nuxt.
Here’s what our friends at Astro had to say about what these improvements mean for you:
Experimental support for Flask and Django
Now that Cloud Functions for Firebase (2nd gen) supports Python, experimental support will be coming soon for vanilla Flask and Django frameworks in our “one command” deployment. Follow the guidance in our documentation to integrate web frameworks with Hosting.
Dynamic preview channels
Last but not least, we’re adding support for dynamic preview channels, which means you can now share a preview of your apps and websites built with frameworks like Astro, Next.js, and Angular Universal with your team before releasing to production - and without affecting other environments. This feature works great with GitHub because the preview URL posts as a pull request comment.
To use dynamic preview channels, update to the latest version of the Firebase CLI, and see our documentation for more details.
Support for Flutter web
Flutter is Google’s open source framework for building beautiful, natively compiled, multi-platform apps from a single codebase. It’s a natural complement to Firebase’s cross-platform backend services. Today, we’re also announcing experimental support in Firebase Hosting support for WebAssembly Flutter web which will now be detected and deploy by Firebase deploy
Flutter SDK updates
In addition, we’ve made the Flutter SDK for Firebase even better and are now at parity for the most commonly-used capabilities, such as:
- Exporting delivery metrics from Firebase Cloud Messaging to BigQuery for campaign analysis
- Using sign-in with Apple, Google Sign-In, GitHub, and other sign-in providers
- Tracking when a Firestore document was last modified with the ServerTimestampBehavior property
To use Firebase and Flutter together, check out our documentation.
Improve start-up performance and quality for Android apps
Slow startup times can create a bad first impression and project an image of low quality to your users. With that in mind, we’ve made improvements to our core Android SDK to reduce CPU consumption, which also reduces startup time. For example, we’ve built a new and efficient thread pool, we’ve added background workers, and we also defer the product’s initialization until it’s actually needed. Now, Android apps built with Firebase will start up approximately 3% faster on average or about about 20 ms!
Another important component of app quality is crashes. At I/O last year, we unveiled the App Quality Insights (AQI) window in Android Studio, which helps you discover, investigate, and reproduce issues reported by Firebase Crashlytics within the context of your local Android Studio project. It also highlights problematic lines of code that have appeared in crash reports so you can fix issues while you’re building features.
Now, AQI has graduated to the stable channel of Android Studio Flamingo with features, such as the ability to:
- Close issues right from the IDE
- Add notes for easier collaboration with your team
- Filter issues by Crashlytics’ signals, like regressions, so you can better prioritize what to fix and when
AQI has even more features in the latest Canary version of Android Studio Hedgehog, like improved code navigation accuracy with version control system history.
Since its launch, we’ve gotten great feedback from developers on how AQI is improving their troubleshooting workflow.
Collect tester feedback in-app using App Distribution
Firebase App Distribution makes it easy to distribute pre-release versions of your app to trusted testers so you can gain valuable feedback and find bugs you may have missed in internal testing. However, when a tester does uncover a bug, it’s hard to gather the information you need to reproduce the issue. For instance, your tester needs to take a screenshot, transfer the screenshot to their email, figure out what app version they’re using, and then send all of this information to you. From now on, your testers will be able to submit feedback, including screenshots, directly in your pre-release app so you can get thorough and complete feedback, with less hassle. And, you can review and manage that feedback in one place as you receive it.
If your team uses an issue management system like Jira, or a team communication system, like Slack, you can use the new EventArc support to route this feedback, and any related artifacts, to the right team. Learn more about these new App Distribution features here.
Introducing real-time updates for Remote Config for faster feature rollouts
Firebase Remote Config gives you the ability to add feature flags and machine-learning powered personalization to your app. With Remote Config, you can dynamically change and optimize the behavior and appearance of your app without requiring users to download a new version. Now, we’re introducing real-time updates for Remote Config to make it faster than ever to roll out, and if necessary roll back, features. This is especially helpful when you want to ramp traffic up in phases. And, if your new feature causes crashes, you can roll it back, fix it, then roll it back out - instantly.
With real-time updates for Remote Config, you can alter your app and manage feature rollouts with greater confidence because every change is low risk. If something goes wrong, it can be swiftly reversed. Real-time updates for Remote Config are available for Android, iOS, Flutter, Unity, and C++, too! Get started by enabling the real-time listener in your app!
Simplifying full stack development
With all of the updates listed above, our goal is to simplify full stack development, reduce complexity to help you be more productive, and give you the fastest path to success. No matter what stage you’re at, we’re here to take care of the hard part of app development so you can focus on making your app the best it can be. To get more insight into the announcements we shared above, be sure to check out the technical sessions at Google I/O 2023! If you want a sneak peek at what we’ll be launching next, join our Alpha program.
And as always, you can stay up to date on the latest news and best practices on using all Firebase products by subscribing to our YouTube channel, providing user feedback through UserVoice, following our blog or following us on Twitter and LinkedIn.