(upbeat music)
Hello everyone, I’m Kristen Richards.
I work on the product team for Firebase, Google’s app development platform.
Our mission is to help developers succeed
by making it easy to build and operate mobile web apps.
This mission feels even more important today than it ever has before.
Over the past year, apps helped us navigate and adapt to our new circumstances.
They kept us informed, productive, entertained, and connected to each other,
and apps will no doubt play a big role in our lives for years to come.
As developers like you build and scale the apps people rely on,
we here at Firebase are committed to providing support, resources and technology
that can unblock innovation in ways big and small.
We're thrilled to share that now
over 3 million apps actively use Firebase every month,
including both fast-growing startups and large global businesses.
Your trust in us is what inspires and motivates us
to keep making Firebase even better.
That’s why today, I’m really excited to join you at Google I/O
to share what’s new in Firebase.
In this session, we’ll cover updates to our platform
that’ll help you accelerate app development, run your app more effectively
and optimize your user experience so that you can scale with ease.
Let’s get started.
We know app development, like other forms of invention,
can be a slow and tedious process.
Your time is very valuable and you should spend it doing the things you love,
like building amazing features to delight your users.
Firebase offers fully managed infrastructure
including databases, authentication and Cloud Functions
that speed up and simplify app development.
You may think that faster development may increase the risk something could break.
Well, the safest way to develop and ship code faster
is to run services locally using the Firebase Emulator Suite.
The Emulator Suite lets you run emulated versions
of our backend products on your own machine,
so that you can rapidly iterate
without interfering with your production data or incurring costs.
A few months ago, we added support for Firebase Authentication,
and I’m pleased to announce Firebase Storage is also joining the Emulator Suite,
giving you complete coverage of our backend products.
The storage emulator lets you upload, download
and modify files just like you would in production.
It also interacts seamlessly with other emulators
so you can trigger Firebase Cloud Functions
and protect access to your files with Firebase authentication.
To use the Emulator Suite,
just download the Firebase CLI and launch the emulators on your machine.
Once you build your app,
the next step is to test it to ensure it’s working as designed.
Firebase App Distribution helps you
distribute pre-release versions of your app to trusted testers,
so that you can get valuable feedback before launch.
App Distribution provides a central hub
where you can manage all your pre-release builds for iOS and Android.
You can send distributions from the console
or use the command line tools already part of your workflow
like Gradle, Firebase CLI and Fast Lane.
We’re excited to announce that we are launching a new feature,
support for Android App Bundles.
With this feature, you can test the actual binaries
that Android customers install on their devices.
App Bundles are the future of publishing with Google Play
and we want to help you make that transition.
We also want to help keep your app and data secure.
As the world becomes more interconnected,
the threats to your data and user privacy can grow.
We want to help you safeguard your data, protect your users,
and control who has access to your resources and infrastructure.
That’s why I’m excited to announce the new security feature, App Check,
is now available in beta.
App Check protects access to your services
by verifying that incoming traffic is coming from your app.
It will block traffic that doesn’t have a valid credential
attesting that it is your app making the call.
App Check is available for cloud storage
for Firebase, Realtime Database and Cloud Functions for Firebase
with more coming soon.
To start protecting your resources, register your app with App Check
and begin enforcing protections through the Firebase console.
In addition to adding a new layer of security,
we’ve released new versions of all of our Firebase web SDKs to beta.
These improved SDKs are smaller, which improves the load times
and reduces the download burden for your users.
The new SDKs can be trimmed,
so you only include what you use for even faster loads.
Now another way that Firebase can save you time is through extensions.
Extensions are prepackaged bundles of code that automate common development tasks
and let you add new functionality to your app much faster.
We started with nine extensions,
but we’ve regularly added more for you to choose from.
To tell you about our newest extensions, I’m going to pass it over to Kara.
Thanks Kristen.
Today, we’re excited to introduce multiple new extensions
in partnership with notable Google services,
as well as companies you already know and trust.
To give you an example of how to use extensions,
I’m going to talk about a new app that I’m building.
I’ve gotten really into coffee recently
and have started a store where I sell my favorite coffee items.
As I start thinking about building out the functionality
to sell products and talk to my customers,
I realized there’s a lot of parts to pull together
and I would rather spend my time learning about the latest coffee brewing technology.
Luckily, Firebase Extensions is here to help.
First, I want to collect payments from customers
who have joined my monthly subscription coffee service.
At Firebase Summit last year,
we launched the Run Subscription Payments with Stripe Extension,
which even allows me to give out discount codes.
Then, I built a message board
to crowdsource ideas on what items I should offer next.
I want to make sure that all the suggestions there
are positive and supportive,
but it's a lot of work to read through every single comment.
The Analyze Toxicity with Perspective API extension
allows me to use the power of machine learning
to efficiently pre-review the comments,
so I can prioritize which ones need my attention.
Toxicity is defined as a rude, disrespectful or unreasonable comment
that is likely to make you leave a discussion.
By using this extension,
I can seamlessly integrate machine learning into my app
and have a technical tool that makes it easier to host better conversations.
Then I want to make it easy for my customers
to find the items that they want to buy.
Search and discovery is a critical component of any app.
Today, we’re excited to announce the Search with Algolia extension.
This extension indexes your database
so you can quickly add search and discovery features in your app.
This extension even updates the index
as new entries show up in your Cloud Firestore.
Finally, I need to communicate with my customers,
and for that, we are excited to introduce extensions with two new partners.
The Manage Marketing with Mailchimp extension
will allow me to sync my user data with a Mailchimp audience,
so I can send personalized emails to my customers.
You'll see that personal information about my users gets populated for me
right in the email I’m about to send,
but sometimes the easiest way to reach my subscribers quickly
is via text message, WhatsApp or Telegram.
My users who have ordered products
expect real-time updates on their shipping status,
but integrating with each of these platforms one by one
can be a lot of work.
Here’s where the Send Messages with MessageBird extension comes in.
This extension allows me to quickly integrate with MessageBird
so I can send messages to my users across any social network,
whether it's text message, WhatsApp or Telegram.
Let’s take a closer look at how this works.
I go to Firebase's website to learn details about this extension.
I click on Install, and now I’m on the Firebase console.
I review APIs enabled,
take a look at billing, grant access to my Cloud Firestore
and then tell the extension a little bit about my app,
like what collection I’m storing my messages in
and adding an API key.
Once installed, I can view instructions for additional setup.
On the MessageBird side, I can set up which channels I plan to use.
Here, I’ve already set up WhatsApp and Telegram.
On the backend, these messages are stored right here in Cloud Firestore
in a collection called messages.
Now let me write a new document to my Cloud Firestore.
Here I am, entering the user’s name and the delivery window,
and voila, I see that very same message on my WhatsApp,
and what’s more, if I go over to my MessageBird account,
I can see that very same conversation in my MessageBird dashboard.
With just minutes, I’ve set up my application to integrate with MessageBird,
which allows me to automatically send messages
to my customers via text message, WhatsApp, Telegram and line.
Firebase extensions have allowed me to jumpstart my coffee app
by allowing me to easily collect payments, moderate comments,
and communicate with my customers.
This would have previously taken me months to integrate with all these services.
Now I’m ready to take my coffee app to prime time.
Back to you, Kristen.
Thanks Kara.
As you just saw, we’ve been investing in tools and building blocks
that can accelerate your app development
so you can bring your idea to life and deliver value to your users in less time.
With our Emulator Suite, which now includes Firebase Storage,
you can develop and test your code instantly in a safe, local environment.
We added support for Android App Bundles in Firebase App Distribution,
making it more seamless to integrate your app with a Google ecosystem.
We launched modularized web SDKs to improve download times.
We’ve also launched App Check to help you protect your backend services.
With our new extensions like Send Messages with MessageBird and Analyze Toxicity,
you can easily add new features & functionality to your app
without having to research or learn new APIs or code.
it’s all done for you.
Now let’s look at what else is new in Firebase.
Once your app is launched,
Firebase helps you run your app more efficiently.
For example, developers turn to Firebase to understand how their app performs in the wild
with Crashlytics and performance monitoring.
But sometimes the influx of data after a big release can feel overwhelming.
How do you interpret that data?
What should you focus on?
When should you take action?
Firebase offers products that can uncover insights
about your app quality
which you can use to deliver a great, fast and stable experience for users.
Crashlytics gives you a complete view of your app stability,
alerting you when a critical crash happens
so that you can resolve bugs before they impact a large number of users.
Many developers use Crashlytics custom keys as a way to provide more context
to understand your app’s most challenging crashes.
For example, you might set a custom key
to mark when a user is in the checkout flow of your shopping app
to help uncover issues in a key part of your code.
We’ve recently made custom keys even more powerful
by giving you custom key search and filtering.
Now you can search for trends across custom keys
and filter down sessions to understand
and fix your app’s trickiest crashes even faster.
Some of the most complex stability issues happen in mobile games.
The last thing you want is for players to experience a crash
just as they're about to complete a game level
or unlock a big treasure.
Imagine how frustrating it would be if your players had to start over again.
We have just launched major improvements to the Crashlytics NDK and Unity offerings
so this nightmare scenario doesn’t come to life.
These new updates increase visibility into your crashes root cause
through more reliable and detailed stack traces,
better grouping of your crashes,
and we’ll be adding enhanced device metadata like GPU, DPI, Resolution and more.
This’ll help you ensure your players get a fun gaming experience
that doesn't abruptly end or come crashing down because of a bug.
In addition to these new Crashlytics features,
we’ve also enhanced Firebase Performance Monitoring.
Performance Monitoring gathers and presents data about your app’s performance,
so you know exactly what’s happening in your app
and when users are experiencing slowness from their point of view.
To tell you more, I’m going to turn it over to Ali.
Thanks, Kristen. Recently launched a new dashboard
to make it easier to focus on your most important performance metrics,
but sometimes a major performance issue
can appear in a metric you normally don't pay much attention.
For example, the percentage of frozen frames of a certain view suddenly increases
because of a seemingly unrelated change.
To find such issues,
previously we had to check out multiple pages in the console.
Not anymore.
Now you can easily find all of your metrics
using our brand new dashboard table without ever leaving the page.
Let’s check it out together.
I recently pushed a change on the backend of my shopping app
and want to make sure that this didn’t affect my user’s experience negatively.
I go to the console. My top level metrics seem alright,
but let's check out the dashboard table.
Here it is. It includes different metrics types.
Let me check on the custom traces.
I’ve added these to my app during development
to measure how long different actions take.
I can sort by the relative change.
Look at my open shopping cart trace.
Its duration has increased by 46%,
That is not good.
My recent backend changes could be at fault.
I know there are some network requests being made during this trace.
So next I want to check on those.
One of the network calls is taking 38% longer.
That seems to be the reason.
I need to go to work and fix the backend API.
I can also add that metric to my report card to keep an eye on it.
Okay, my fix is in.
After some time for new data to process, I go back to my report card
and my open shopping cart trace is doing great.
But what if I didn’t have to wait for the performance data to be processed
and could monitor the change as it was happening?
This is one of the top requests we’ve heard from you.
We know that the delay in processing makes it difficult,
if not impossible to react to performance issues in a timely manner.
We’ve been listening, and I’m happy to announce
that Performance Monitoring now processes the data in real time.
Think about the possibilities it allows.
For example, you can monitor the performance of your app
as you're making a new release.
If you’re launching a new feature using Remote Config,
it allows you to monitor and react in real-time,
or if your users complain about the app being slow,
you can check out the performance of your app
as they're experiencing it.
To get real-time performance data,
all you need to do is to update to our latest SDK.
Back to you Kristen.
Thanks Ali.
Alright, we just learned about updates to Crashlytics
and saw a demo of the real-time performance monitoring dashboard.
The underlying goal of the launches is to surface insights from your stability
and performance data so you can take action to improve your app quality.
With Firebase, we want to make it easy for you to run your app
and help get you ready to scale.
As your app and business grow,
you may need more flexibility, control, and automation capabilities
to drive the outcomes you want.
We've been working hard to strengthen Firebase Remote Config
so that you can tailor Firebase to suit your sophisticated needs.
Remote Config gives you visibility
and fine-grain control over your app’s configuration
so you can optimize the user experience
to achieve your goals and ultimately keep users engaged.
To tell you what’s new in Firebase Remote Config, let’s go to Jon.
Thanks, Kristen.
Remote Config, as the name suggests,
allows you to remotely configure your app without performing a release.
Remote Config can be used to manage feature flags,
create targeted configurations for specific user groups,
run A/B tests and much more.
We’ve recently made some changes that will make it easier for you
to understand your active configuration and to optimize experiences for your users.
First, we've redesigned the RC console experience
to bring important information to the forefront.
Parameter descriptions are now longer,
giving you more room to describe what a parameter controls,
what values it can take, and whether or not it is safe to change.
We've also made it easier for you to see very long parameter values
and it’s now possible to expand or collapse parameters
so you can see all conditional values if needed
or a more compact view if that's more to your liking.
The Publish Flow has been improved
to make it more obvious which of your changes are pending.
So you’ll never forget that last important step
of publishing your newly edited configuration.
We’ve also made some changes
to make it easier to understand your Remote Config A/B test results.
We've completely redesigned the results page
to remove unnecessary information,
and the remaining information is better organized, summarized and visualized,
so you can act on your test results with confidence,
and last but not least,
we’re putting the finishing touches on a new personalization feature
that will automatically personalize app experiences
using the power of Firebase and machine learning.
For several months, we’ve been working with partners
to ensure that this feature meets the needs
They've been getting fantastic results
and we’re very excited to make this feature available in the coming weeks.
Now I’ll pass it back over to Kristen to wrap up.
Thanks Jon.
Throughout the session, we walked through the work we’ve done
to make Firebase even better,
but 2021 is only halfway done.
We’ll have many more announcements in the second half of 2021
on how our platform can help you accelerate app development,
run your app more effectively and optimize your user experience
so that you can scale with ease.
People are relying on your apps to adapt and thrive in our changing world,
and you can rely on us to build, operate and grow successful apps.
Thanks for joining us, and be sure to check out
the other Firebase technical sessions we have lined up at Google I/O.
(upbeat music)