[LOGO MUSIC] FRANCIS MA: Good
morning, everyone. Thank you for joining us,
whether you're here in the room or on the livestream. My name is Francis Ma. I lead the Firebase
product team. It's been an incredible
journey for Firebase over the past few
years, and it's hard to believe that it's
already been three years now since we relaunched Firebase
as Google's app development platform. But, since then, our mission
has remained the same-- to help mobile and web app
developers, like many of you, succeed. And we do this by providing you
a platform of tools and cloud services to simplify your
app development workflow and infrastructure needs so
that you can focus on building amazing user experiences. And it's an honor
that so many of you trust us through this journey,
whether you're a startup, tech unicorns, or enterprises. And recently, I heard
about a startup in Uganda called Teheca. And Teheca's focused on reducing
the mortality rates of infants and new mothers by connecting
the parents with nurses for postnatal care. And it's amazing to
hear what they're doing, and it's also very exciting
to hear they're using Firebase to power their app. And it's stories like
this and many others that motivates our
team to continue to work hard to help
developers like you succeed. And I feel we're just
getting started here. Over the last six months, we've
released over 100 new features and updates across
the Firebase platform, and the feedback from
the developer community has been incredibly valuable
in shaping Firebase. So thank you, and
please keep that coming. Now, over the next
30 minutes, we're going to talk about some
of these new updates, as well as how
Firebase can help you across the lifecycle
of your app, from helping you build your app
with fully managed backends, to helping you improve your
app quality with testing and monitoring, as well
as helping you engage your users with user insights. And so let's dive
into it to talk about how Firebase can help
you build your app more easily. Now, as you've heard,
Google is committed to making AI available
to every developer because we believe that AI is
core to the next phase of how software is built.
And with Firebase, we want to make machine learning
easy to use so that anybody can bring ML into their app,
regardless of their expertise. Now, last year, we
launched ML Kit with a set of out-of-the-box APIs
that worked on-device and in the cloud, as well as
support for custom models. Now, these initial set of APIs
were focused on machine vision, and over the past
few months, we've expanded the APIs to support
natural language processing, as well, with things like Language
Identification and Smart Reply APIs. And just yesterday,
we further expanded the sets with Object
Detection and Tracking, as well as the Translation API. So the Object and
Detection Tracking API allows you to track the
most prominent object in a live video
feed in real time. And the Translation API gives
you the same capabilities as the Google Translate
app in offline mode, and it works across
59 languages. Now, some of our partners have
already seen early success with these APIs. As an example, IKEA. One of the largest retailers,
with millions of products in the catalog, and
what they've noticed is that increasingly, customers
are using their smartphones to look up products
while they're in store. And so they've partnered with
us to build a visual search feature into their app using the
Object Detection and Tracking API, as well as the Cloud
Vision and Product Search API so that customers can
pull out their phone to see what's in front of
them while they're in store, and they can quickly
identify the object, send that to the cloud to then
look up the specific product SKU. This is really cool
what the team has built, and I can't wait to see what
many of you will do, as well. So, in addition to the
out-of-the-box APIs that are easy to use, ML Kit also
supports more specific use cases by enabling you to bring
in your own custom TensorFlow Lite model, and also serve
them through Google's cloud infrastructure. Now, while custom models
can be extremely powerful, we've also heard
from many of you that they can be challenging
to get started to develop, and then sometimes even
harder to optimize. And that's why
we've taken a step to bring AutoML Vision Edge to
Firebase to make this easier. With AutoML Vision Edge,
you can now build and train custom TensorFlow Lite
models to classify images with no ML or data
science expertise needed. All you have to do is
upload a set of image, click a button to train your
model, and then publish it. To show you how
this works, I'd like to invite my teammate Rachel
to come and demo this on stage with us. [APPLAUSE] RACHEL MYERS: Hey, everyone. Thanks for sharing my laptop. So I've opened up the Firebase
console for my project, and I've clicked into
the ML Kit tab here, and then I opened up AutoML. I was inspired by
the keynote and I'd like to create an app
that will identify dog breeds from a photo. To start, I'm going to
need a training data set of images that are labeled
with the classifications that I want the
ML model to learn. So I'm going to create-- whoa, not all caps. Just like that. And I'll upload my data set. And, while that's working-- so I'm taking a data set
that's a ZIP file of images. And in the case of a
ZIP file, the file names serve as the
classification labels. I could also upload
individual images or via Google Cloud Storage. So while this uploads,
here's a project that has already uploaded. And I can look through
and I can see the images. I can edit their
labels if I need to. And then I can train the model. I have a few
different options when I'm ready to train the model. In my case, I'm going to go
with the middle ground here. This lets me balance
between accuracy and speed. So I'll start that training. This model's going to
train for a few hours, so here's one that has
already been trained. And I can look through
and I can see the results. The evaluation
page for your model includes how certain the model
is that it can distinguish between different labels. You'll know that your
model's ready to use when the percentage of accuracy
between different labels matches your thresholds
for accuracy. When you're ready to use it,
you have two different options. It can either be downloaded
and bundled with your app, and that ensures that
it's available offline, or it can be hosted and
dynamically downloaded when it's needed. And that ensures that you
have a small app size. So, returning to the slides-- thanks-- AutoML has
put AI into the hands of Firebase developers. But you might be
thinking, sure, it's easy to start training
a model when you already have a labeled data set. Isn't getting that training data
one of the hardest parts of ML? You're absolutely
right, and we want to make that part easier, also. Imagine that you
have a physical store and you want your
customers to be able to identify
items in your app as they walk through the store. To build that,
you'll probably want to start with lots of real
world data of your images-- real world images
of your products. You'll probably want to
ask several employees to collaborate on
collecting that data, and you'll want to make it
as easy as possible for them to collect Streamlining
that entire workflow, we've created a custom
classification image app that makes it easy for you to
collaborate on collecting that training data. It's built using Flutter,
Firebase, and Google Cloud, and it's available
now on GitHub for you to clone down and start using. So I've done this. I've cloned it, I've built it,
and I've installed the app. And now I'm going to
show you how easy it was. Here's my phone. Can we show my phone? Can we display my Android? Is it not casting? Yeah? Thanks. So this is the new
Android that everyone should go buy for I/O '19. And I'm going to collect some
training data for this one to include it in my model
that identifies mini figures. So, to make it easy to collect
lots of real world data, we've created an app that
lets you take a video and then a Google Cloud
function will convert that video into individual frames. I'm going to take one more so
it gets to see all sides, just like this. OK. So now I can see all of
the individual images that it's taken,
and now this will be included in my training data. That was easy. But you might be
wondering, why are you giving an ML
demo if you're not going to show us ML in action? And that's fair. So here's an Owl Android. It's already part
of my trained model. And we're going to see--
this is the moment of truth-- if my model can identify it. Hm? We're going to try
it one more time. Yay. OK, so it sees the Owl
Android, and it's 89% sure. So there's another talk
later today about ML features that Firebase is releasing. Back to you, Francis. FRANCIS MA: Thanks, Rachel. So, in addition to helping
you build amazing ML features into your app,
Firebase also provides fully managed backend
infrastructure to help you build easier
and faster on Google Cloud, from Firestore to Cloud
Functions to hosting. So let's go over some of these
new updates in more detail. We'll start with Firestore. First off, Firestore
has graduated from beta to general availability
in the recent months. We now offer a
five 9s uptime SLA with multi-region
provisioning, so this means it will be down for
no more than five minutes in a year. In addition to that, we've also
broadened its capabilities. First, we've made it
available worldwide, where you can
provision Firestore across 15 locations
around the world. We've also added better and
real time usage insights so that you can track and see
in real time of how you're using Firestore and have
better prediction of your bill, and this is one of
the top requests we've heard from the community. And then, as well, we've
added more expressive queries and operations, with
things array containments and operations like
increments to help you create more natural data structures. And, starting today,
Firestore also supports Collection
Group Queries. So this allows you to query-- thank you. [APPLAUSE] This allows you to query
across all sub-collections of the same name. So for example, here's
a Firestore project with restaurants and reviews. The top-level collection
is the restaurants, which contain
sub-collections of reviews. Now, you can run a query across
all the reviews of collections of all the restaurants
to find the ones are written by the same user. So here is a query
that you can run to find all the reviews
that Alice had written across all the restaurants. So Firestore gives you
serverless data storage. Cloud Functions helps you with
your server computing needs by letting you upload your
own snippet of JavaScript code and executing that in our cloud. Now recently, we've also
added scheduled functions that enables you to schedule
function executions like a cron job. And setting this
up is super simple. Here's an example of a
function that's scheduled to run everyday at 3:00 AM. And you can also
use cron-type syntax to define the
frequency in your code. So one of the key powerful
aspects of functions is the ability to
trigger it via events that are happening
across Firebase and GCP, and we also recently
added ability to trigger functions via Remote
Config whenever a new config is published or reverted. So as an example, when you
change a config in your app, you can also trigger a function
to send a push notification to the device to then
immediately trigger a sync, so that your app always
gets the latest config. Now to share a story of how
a customer has used Firestore and functions, I
want to talk a bit about Skip Scooters, a startup
based in San Francisco. So Skip Scooters
runs on Firestore, and their scooters
are connected directly to Firestore to send up their
status and location data. And Firestore then pushes these
new updates to other scooters and to the riders who
are using the Skip app so they can see nearby
scooters and unlock them. All of this synchronization
is handled by Firestore, and it's protected by the
Firebase security rules. So in addition to providing
scalable and fully-managed backends in Cloud, we've
also heard from you that having more tools to
develop and testing locally is very important. And so back in October,
a couple of months ago, we've launched
local emulators for Firestore and the
Realtime Database. And today, we're also
expanding this emulator suite to include Cloud Functions. So to show you how this works,
let's pass it back to Rachel. RACHEL MYERS: Products
like Firebase and Bass are great because you aren't
responsible for upgrades or technical operations. But one downside is that it
can be more complex to develop and test your code. The emulators make it possible
for you to write your code and to locally test it without
calling a remote database. So here's an example that
we'll walk through soon. If you had an emulator
to locally develop-- oh, sorry. Yeah, that's right. If you had an emulator to
locally develop and debug a shopping cart app,
we're going to test and debug adding an item
to your shopping cart and recalculating
the cart total. To show you what the
moving parts of this are when the user adds
an item to their cart, the item is written to
the Firestore emulator. That triggers a function
called Calculate cart to run and that will sum
up the cart total. That totals written back
to the Firestore emulator before developers can
locally test scenarios like this that involve
Firestore end functions talking to each other. But I'm going to
demo how the Emulator Suite solves this problem. So this is the function
calculating card that we're looking at. At the top of the
function here, we can see that this is going
to fire when an item is added to the cart in Firestore. We can see here that it's
going to update the price. If I want to test
this locally, I need local instances
of Firestore and functions that can
talk to each other. Let's look at how
that's made possible. So I'm going to start
my Firestore emulator. And it's going to
first print out the local locations
of each emulator. That's great. I know that I can always go
back and look at that directly. Then it's going to print out
for me that calculate cart has been set up. That's my function,
and that tells me that I know this
is going to fire. So let's try it. Here's my local
Android app that's running my shopping cart app. I'm going to try adding a
bag of coffee beans to my app and see that-- oh, that's weird. Coffee should cost
$12.99, and it looks like the shopping
cart now has $13.99 in it. I might have a bug. Let me run my test. So my test fails,
and that tells me that I have a problem in my
function and not in my client. So let's go back and
look at my function. Yep, I have a problem
in my addition here. Let's try rerunning the test. And it passes. That's great. Just to be sure, I'm going to
try running it in my emulator again and make sure
that it's fixed there. Oh, cool. That worked, and now I have two. Wonderful. So now that I'm-- so,
sorry, I lost my voice. So we did all of this locally. We spun up local
versions of our emulators for Firestore and for functions
and for the Android emulator that was talking
to those emulators. We are also able to
run our tests locally. And we did all of this offline. So now that I know this
is tested and debugged, I feel good about shipping
this to production. Back to you, Francis. FRANCIS MA: Great. [APPLAUSE] So, in addition to updates
the Firestore functions and emulators, we've
also improved hosting, where we've recently
launched a new integration between Firebase
Hosting and Cloud Run. Now Cloud Run allows
you to deploy and run your own stateless containers
on a fully managed environment so that you can use
Firebase Hosting and Cloud Run to implement a
fully dynamic web app with server side rendering
all without having to provision and manage your own servers. So building your app
is only the first step. After it's build, you still
have to test it, to monitor it, to debug it, and engage users. To talk more about
how Firebase can help you operate and
iterate on your app, I'd like to turn it over
to my teammate Alex Singer. [APPLAUSE] ALEX SINGER: Hello, everyone. I'm Alex singer,
a PM on Firebase. The best time to find
issues in your app is before releasing
it to the app store. Firebase Test Lab
makes it easy to run tests on real, physical
devices straight from your CLI or the Firebase console. Over the past few months,
we've released a number of improvements to Test Lab. To help you test on the latest
and greatest devices, operating systems, and upload
formats, we are excited to share that
Firebase Test Lab now supports Wear OS, Android
Q, and Android App Bundles. We're also improving
Test Lab support for games, which currently
test your games by tapping in random places
throughout the UI. And now, we're augmenting
it with machine learning so the crawler can make
intelligent decisions about where to tap. In fact, in our testing
of the top 200 games, we found that each
action the crawler took was more than
twice as effective. Lastly, we're giving
you a better sense of the quality of your tests
with flaky test detection. So you can fix flaky tests
and gain more confidence in your test suite. Synthetic tests are a
great way to catch bugs before you release your app. But you'll also
want to see how it's performing with real users. Firebase Performance
Monitoring helps you uncover a
network and latency issues that are occurring
with users in the wild. We know that there
are times when you want to export your
data for deeper analysis or to combine it with
other data sources. Starting today, you'll be
able to export your Firebase Performance Monitoring
data into BigQuery. This builds on the
integrations we've launched last year between
BigQuery, Google Analytics, Crashlytics, and predictions. In yesterday's
keynote, we announced that performance monitoring
is now available for web apps. This is super exciting
because it helps you quickly find and fix performance issues
that are impacting your end users experience with your app. To show you performance
monitoring and more detail, I'm going to turn it over to
my teammate Derek Philips. DEREK PHILLIPS: Thanks, Alex. [APPLAUSE] Adding the performance
monitoring SDK to my web app is a simple copy and paste
of a JavaScript snippet. I've got another web app
here that's been live for a few weeks. So it has some real data
that I can show you. I'm in the Firebase
console now, and you can see that performance
monitoring shows me things like the median
load time for my app over the last few weeks. But Firebase shows you
much more than this. Something like First
Contentful Paint shows you the first time
that something meaningful is showing up in the app. So the user is probably
getting some value. Even more important is
something like dominteractive. This is the point where the
user can actually scroll around and interact with the page. This is a really
important metric. And with Firebase
Performance Monitoring, you get it for free. For now though, let's take
a look at the load time. So if you look here,
you see the median load time is about three seconds. That's actually pretty good. But there's a lot more to the
load time than the median. There are many users
on different devices and different networks. And so to really
understand this, I need to look at
the distribution. So I can click through here
and see the distribution. So, when we look at
the distribution curve, we can see that there is
a small long tail of users that are experiencing
really rough load times. The worst is substantially
slower than the medium. It might only be
2%, 3% of our users. But that can still
actually be a lot of users. Down below the graphs. I can look at different
segments of my users to try to figure out the root
cause of the latency issue. In this case, if I
click through here, I can see some of the
really bad load time affects users in India, and
it's probably a network issue. This level of detail allows
me to quickly troubleshoot the problem and
realize the problem is likely with my server side
code or the network itself. In this app, I'm
using Cloud Functions, and the issue might be that
the servers are actually running in the US. By flagging this issue
for users in India, performance
monitoring is helping me ensure that more of my users
get that awesome median load time. Back to you, Alex. ALEX SINGER: At Google I/O
2017, we first stepped on stage and unveiled our vision for
bringing the best of the fabric into Firebase. Since then, we've
been working hard to bring the qualities,
tools, and magic that you love about Fabric to Firebase. For example, we've added phone
authentication, Crashlytics, and latest release metrics. And more recently, we
shipped Unity and NDK support for Firebase Crashlytics
and launced integrations with productivity tools like
Slack, JIRA, and PagerDuty. We've even built brand new
capabilities in Firebase that were not available in
Fabric, like the ability to export your Crashlytics
data into BigQuery. It's been an amazing
journey so far. And now we want to outline the
rest of it in greater clarity. So I have a few updates to share
about the Fabric Migration. We know many of you
have been waiting for more information on
the future of Crashlytics beta, the fabric
service that lets you distribute prereleased
versions of your apps to testers. Well, we've been building
the next generation of Crashlytics beta in Firebase
called app distribution. App distribution
will be publicly available in the coming months. And if you want a
preview, please sign up for our Alpha program to request
early access to test it out. We've also revamped our roadmap. So it's easier to see
what is in progress and give you more precision
about the timeline. Specifically, we're announcing
a complete Fabrics transition to Firebase on March 31st, 2020. To learn more about
the migration, I encourage you to look
at the public roadmap. And while Fabric may be going
away, we're not saying goodbye. We are continuing to help you
build stable apps in Firebase. Here's one example of
our continued investment in Crashlytics. The most important
alert in Crashlytics is the Velocity
Alert, which tells you when a particular issue affects
a significant percentage of your user sessions. Now we know that every
app is unique and this one-size-fits-all threshold
might not be what's best for you and your business. That's why we're
excited to share that Velocity Alerts are
now customizable in Firebase Crashlytics. [APPLAUSE] Let's take a look. I had to set them up. Derek. DEREK PHILLIPS: Up until
now, the percentage of users affected before we send a
Velocity Alert has always been fixed at 1%. We've received feedback
from many of you that this might
already be too late. Already millions
of user sessions might've been affected. Knowing production issues early
and being able to react to them is essential to making
sure your app is stable. We recently enabled
you to fine tune your app gets notified
with a Velocity Alert. You can find the settings
under the Crashlytics console settings. So if I come in here,
I can bring it up, Velocity Alert settings. And now with just
this slider, you can tell us when you want to be
notified, anywhere between 0.1% and 1% of your user sessions. This has been one of our
biggest customer requests for quite a long time. And today, we're
really excited to be able to share it with you. Back to you, Alex. [APPLAUSE] ALEX SINGER: We've
had many customers make the move to Firebase
to take advantage of these new capabilities. Booking and travel company
KAYAK made the transition and is already
getting a ton of value by exporting their data from
Crashlytics into BigQuery for deeper analysis. They've also found it's seamless
to use other parts of Firebase, including performance
monitoring and Test Lab so that they can take a
holistic approach into improving their app's quality
and stability. From Test Lab to performance
monitoring to Crashlytics, Firebase has the tools to help
you monitor and debug your app. And after your app is
stable, the next step in building a business is
understanding your user base and increasing engagement. Google Analytics
for Firebase helps you understand your users better
so you can engage them more intelligently and personalize
their experience more thoughtfully, all through
the power of data. You may have noticed a
series of improvements over the last few months in
Google Analytics for Firebase. Those changes were building
up to some major launches, where which we're
excited to unveil today. Let's take a look. DEREK PHILLIPS: Last year we
announced flexible filters. This allows you to filter
your analytics reports using multiple values
for a single dimension. For example, you can filter
your active users report to focus just on the
latest Android models. Since then, we've made
a major leap forward in sophistication
and flexibility. You can now filter almost
every audience analytics report using any combination of
user properties and audiences. This enables you
to dive much deeper in your reports to find
the proverbial needle in the Haystack. Let's take a look. So I've configured
my app here so that, when a user
completes around, I keep track of their score. If I look in here, I can
see that the average score is about 24,000. So let's see if that
holds true for IOS users. So I can come here and
filter out IOS users. Let's see what we get. Yeah, it's about the
same, about 24,000. Now, when I was looking
at the dashboard before, I noticed that one of
my most popular devices is the iPad sixth generation. So let's see how
those users fare. So I can come here and
restrict to those users. Let's see how they do. Oh, they only get about 21,000. So they're about 15%
worse than the average. Let's see if it's just because
this is a bunch of new users. I can do this by applying
another filter, which is now possible because we removed
the limits on the number of conditions you can apply. So I can come in here and
include only the users that have been around for at least 7
days and see how they're doing. So they do slightly better. But still they can't
reach the average. So I might have made the game
a little bit too difficult for my tablet users. I might want to go back,
make some changes, and even things out a bit,
especially since this is one of my most popular devices. Now, after I do that,
it would be a good idea to go back and re-engage
these users, using something like a push notification
or an ad campaign. I can start by creating
an audience that includes the low
scoring tablet user, load scoring tablet users
using the new Audience Builder. We've rebuilt the audience
system from scratch and wrapped it in a powerful
new Audience Builder UI. Complete with features
like sequences, scoping, time windows, membership
duration, and more, the result is an
audience system that allows you to create dynamic
precise and fresh audiences that you can use for
things like personalization or re-engagement. In this case, will show
off the exclusion criteria. So what I can do is I can
create a custom audience, and I'll include users
that are on tablets. So I can choose tablets here. But I don't want all
the tablet users. I want the ones that actually
perform poorly on up to now and got below the average. So what I can do is I can
add an additional condition and remove the users who,
when they completed it, got a score, which
was above the average. So I can say those that had
a score of above 24,000. So what this will do is
remove the tablet users that actually performed pretty well. Now I can just
save this audience, let it accumulate
to matching users, and then I can reach out
to them with something like Firebase Cloud Messaging. You can also see this
nice little chart on the side, which
shows how many users will be excluded as a
result of this new criteria. So you can have confidence in
the audiences you're creating. This just barely
scratches the surface of what you can do with
the new Audience Builder. So this is one I
think you're really going to want to
spend some time with. Back to you, Alex. ALEX SINGER: So you've just
heard about new updates to Firebase that help you build
your app, improve your quality, and drive engagement. I'd like to share one more
story about a customer who found success with Firebase. Hotstar is India's largest
video streaming platform. They used Crashlytics, BigQuery,
Analytics, and Remote Config to roll out a new feature
during the India Premier League championships-- a cricket tournament in one
of India's largest sporting events. Let's take a look at their
story in more detail. KSHITIJ GUPTA: India has
been mostly a one TV country, like one TV per household. But data has become
so cheap here. So this made your
phone your next TV. Hotstar was launched
three years back. And in the last
two years, we have seen our MAU grew to more
than 150 million users. SUDENDRA KAMBLE: Before
the start of 2018 IPL, we decided to completely
rebuild our app. IPL is the biggest
sporting event in India. We were expecting a
huge surge of users. We wanted to use
this opportunity to launch new features. AYUSHI GUPTA: Using Firebase
Remote Config, we slowly roll out the feature to a
small percentage of users. SUDENDRA KAMBLE:
Our engineering team was monitoring crashes
in Firebase Crashlytics. We noticed that a feature
was causing some crashes on a few low-end
Android devices. AYUSHI GUPTA: We use Google
Analytics for Firebase to segment our users
on low end devices. And then we turned
off the feature for them using conditional
targeting and Remote Config. This way we saved our
users, our millions of users from buggy experience. Amazingly, we were
able to do all of this without releasing [INAUDIBLE]. With Firebase, we
can make decisions by deeply understanding
and analyzing our data. ASHWINI KUMAR: We created
another crucial resource to achieve this. For example, we export Firebase
event logs to BigQuery. We log at the startup
time from launch to load up the fastest screen. Then we ran queries to
understand where the most time users spent. 2018 was like a
dream year for us. We increased daily
watch time by 28%. Technology like
Firebase and BigQuery are helping us to scale so
much that Hotstar is quickly becoming the primary viewing
screen for many Indians, not the cache of destination. [APPLAUSE] FRANCIS MA: Thanks,
Alex and Derek. So it's incredible to see a 38%
increase in daily watch time that Hotstar was able to
attain with s help of Firebase. And as we continue to work
with developers like you through the journey
of your app lifecycle, we're also continuing to deepen
our integration with Google Cloud Platform to
provide you even with more capabilities
and support for your complex business
and enterprise needs. To that end, just
a few weeks ago, we had launched full
enterprise grade support through Google Cloud. So this enterprise
support gives you response times as
quick as 15 minutes with dedicated technical account
management, phone support, and much more. Now we don't plan
to change anything about our existing free support
so we can continue to use that. But if you're looking for a
paid enterprise grade support option, you can now get
your Firebase questions answered through Google
Cloud Platform support. And if you already have a
paid GCP support package, Firebase will
automatically be included. We've also improved the way
that you can manage your access and permissions for
your Firebase project, so they can have finer grain
permissions control and tighter security access using GCP's
identity and access management controls. So for example, let's say
you have a team member who's responsible for managing your
analytics in your projects but probably shouldn't be
accessing your Firestore data. Now, you can go into
the Firebase console and grant them only access
to the analytics portion of the UI. And lastly, to make Firebase
more usable for all of you, we've continued to open
source our SDKs with C++ being the most recent, and continued
accepting contributions from the community. We want to ensure that
you have the transparency and flexibility with
the code that you integrate into your app. And with Open Source,
you now have more power than ever before to make
our SDK's work for you. So those are all the updates
that we have to share today. What do you all think? [APPLAUSE] Thank you. It's pretty cool stuff. And as we look
forward to the future, we're committed to
continuing to investing and building tools
and cloud services to help you build
your app, improve the quality of your app,
and engaging more users. With every improvement
of Firebase, we strive to simplify your
app development workflow and infrastructure
needs so that you can focus on building
amazing user experiences. And we can't do--
and we couldn't have done it without
you, our community, of Firebase developers. Now, as Alex mentioned earlier,
we'd love for you to join our alpha program at
G.co/FirebaseAlpha so that you can give us feedback on the
new products and features that we've built in Firebase. On behalf of the team, thank
you for joining us today and for continuing
to invest your time and voice in helping us
shape the future of Firebase. We're going to be over
at the Firebase sandbox. So please come by and say hi. And by now, I think
most of you will know to look for
the yellow t-shirts that we're all wearing. Thank you. Have a great I/O. [LOGO MUSIC]