[MUSIC PLAYING]
[SWISHING NOISE]
DAVID EAST: Hello, everybody.
And welcome to a brand new episode of #AskFirebase,
the show where we take your questions from YouTube,
Twitter, Stack Overflow-- wherever you send them
into us--
and we answer them right here.
And we bring people from all over Firebase, like Annie Ryan,
from UX, to answer your questions.
And Annie-- fun fact--
knows how to make a sconut.
What is a sconut, Annie?
ANNIE RYAN: A sconut is a mix between a scone and a donut.
DAVID EAST: It's like a--
ANNIE RYAN: It's like a--
well, I guess you can really make them any shape.
But I like to make little sconut holes.
You know-- pop.
Pop them right in your mouth.
DAVID EAST: Did you bring any?
ANNIE RYAN: I'm so sorry.
DAVID EAST: All right--
I guess we'll just answer some questions then.
ANNIE RYAN: Our first question comes from Joey.
And he says, "I want to ship an update to my app.
But I'm unsure if users are going to respond well to it.
What should I do?"
A scenario that I think of would be--
so you're building a music app.
And some users, they like to cross fade in between songs
where others just like to jump directly to the next song.
So how would you test both of those concepts?
I'm a UX designer.
So I participate in research sessions a lot here.
And I think, what I would do is, well, first,
for any research session you have, you gather users.
And then the next thing you do is test both concepts in front
of them.
And then once you have that, you then gather your data.
What do we do after that?
We analyze our data.
And then we present the findings to the rest of our team,
make some product recommendations.
And if your results are inconclusive,
which sometimes happens, I think that's the time
to make a judgment call.
Because once you ship, you're going to get feedback
from your end users.
And that can help inform you what to do next from there.
DAVID EAST: Great question, Joey.
ANNIE RYAN: Hey, Annie--
DAVID EAST: Hey, David--
next question.
ANNIE RYAN: Next question.
DAVID EAST: This next question comes from Mike on Twitter.
And Mike asks, "hey, friends, at #AskFirebase and @electronjs.
I'm getting this warning when building an #electron Angular 8
app with Firebase.
Any tips on how to best resolve it?"
Well, for those of you who don't know what electronjs is,
it's this amazing tool for building desktop applications.
So you get this Chrome front-end or Chromium-based front-end.
And you get Node also working within that environment.
And what's really amazing about it is I
can make Node calls in the browser.
But how that can make things confusing
is that Firebase ships multiple bundles
for different environments in our package.json.
So the main field indicates that we're
going to use a common js and a Node environment.
And then the browser field is what the browser
likes to understand.
And since now both of them work, things
can get kind of confusing.
So the tips for getting this result
is that you either use just basic script tags.
So things are dangled off the window,
so we don't have Firebase.
And then we'll know that that is a browser environment.
But if you're using a module bundler,
you want to make sure that, when your code is
built and transpiled out, there aren't any Require functions.
Because if there's a Require function,
we're going to assume that you're using a common js node
approach.
And then you'll see that warning.
So make sure that there's no Requires
and that everything looks as if it's
coming from a browser-based environment.
Great question, Mike.
ANNIE RYAN: Hey, David--
DAVID EAST: Hey, Annie--
ANNIE RYAN: Let's play a game called, What's the Difference?
What's the difference between Cloud Functions and Cloud Run?
DAVID EAST: Cloud Functions and Cloud Run
or both serverless tools with integrations between Google
Cloud and Firebase.
So Cloud Functions makes it very simple
to trigger server code based on events.
So if a document is updated or created or deleted
in Firestore, it will trigger an action for you
to, maybe, delete other nodes or to update nodes
in other places.
Or when a user creates an account,
you can go and send them a Welcome email.
And all of the runtime and everything is managed for you.
So if you just want to write a few lines of simple server
code, we make it really easy.
Whereas Cloud Run is also serverless,
but it's all based on containers.
ANNIE RYAN: Oh!
DAVID EAST: So if you are familiar with Docker,
you can create your own Docker container, build it.
And then when you send it up to Cloud Run,
it will serverlessly be triggered, based upon an event.
Cloud Run, as of today, only supports HTTP events.
So if you call a method, it will run your container.
But there are more events coming in the future.
So the main difference is Cloud Functions
is really managed for you.
But it's super duper easy to get started.
And Cloud Run, you have a lot more flexibility.
But there's a bit more you have to do to get it running.
But you can use all sorts of programming languages
and, basically, whatever you want.
Hey, Annie--
ANNIE RYAN: Mm-hm?
DAVID EAST: What's the difference
between UX and UI design?
ANNIE RYAN: Well, David, let me tell you,
these are two acronyms.
UX is User Experience, where UI is User Interface.
And so I'm a UX designer.
I do a little bit of both, though.
UX deals more with the end-to-end experience
that your end users have with your application--
whatever product that you're building.
Whereas, UI is more, like it says, the interface itself.
And UI designers deal with visual language, componentry,
how users respond to the interface
that you put in front of them.
Hey, David, what's the difference
between Firebase performance monitoring and Lighthouse?
DAVID EAST: Firebase and performance monitoring
in Lighthouse are both tools for monitoring
the performance of your web app and two tools that
are also made here at Google.
But the difference is in how you use them.
So Lighthouse is how we refer to as in-the-lab testing.
It has a very set list of conditions and audits
that it runs and tells you how your app performed.
And this happens either through Chrome or Chrome extension
or some type of Lighthouse runner.
And it'll tell you whether your app was accessible,
how fast it loaded on this certain connection, when
all these first paints and first contentful paint
and really helpful metrics happen.
But it happens as a lab test.
Whereas, Firebase performance monitoring
is a script that you include in your app,
much like Google Analytics.
And it beacons the performance data
from the app to Firebase performance monitoring's
dashboard.
And it displays to you what actually happened in the wild.
So you can see your performance data
for users across different countries
and different devices, in browsers.
And you can really drill in to see where
problems are lying in the wild.
And so the way that people's workflow usually goes
is that you use Lighthouse while you're developing,
to catch any issues that might happen before you deploy.
And then you use performance monitoring
to monitor that performance over time,
to make sure that you're getting the proper performance you
need.
So that is all for today for this episode of #AskFirebase.
Thank you so much for sending in your questions.
And thank you so much to Annie Ryan for coming on and helping
us answer them.
And if you have a Firebase question,
make sure to go onto YouTube, Twitter, Stack Overflow
and tag it with #AskFirebase.
And we will answer it on this show.
If you liked this episode, make sure to go down and hit
that Thumbs-up button.
And subscribe for all the new episodes
that we're going to be releasing to the YouTube channel.
Thank you all so much for stopping by.
And I will see you on the very next episode of #AskFirebase.
Next question!