
Firebase expands to become a unified app platform - Nemant
https://firebase.googleblog.com/2016/05/firebase-expands-to-become-unified-app-platform.html
======
mayop100
(firebase founder here) I’m thrilled to finally be able to show everyone what
we’ve been working on over the last 18 months! When I said “big things are
coming” in the HN comments back when our acquisition was announced, I was
talking about today : )

We’re really excited about these new products. There are some big advances on
the development side, with a new storage solution, integrated push messaging,
remote configuration, updates to auth, etc. Perhaps more important though are
the new solutions for later in your app’s lifecycle. We’ve added analytics,
crash reporting, dynamic linking, and a bunch more so that we can continue to
support you after you’ve built and launched your app too.

I'd suggest reading the blog post for more info:
[https://firebase.googleblog.com/2016/05/firebase-expands-
to-...](https://firebase.googleblog.com/2016/05/firebase-expands-to-become-
unified-app-platform.html)

This is the first cut of a lot of new features, and we’re eager to hear what
the Hacker News community thinks. I look forward to your comments!

~~~
pritambarhate
Is there an Open Source version of Firebase which we can use on our own
hardware if we wish to? Vendor lock-in is the biggest fear I have with
Firebase.

Like Facebook (Parse), if Google also decides that Firebase is not profitable
and decides to close down, how do we run our applications without rewriting?

How do we protect ourselves, if Google decides to increase the price of
Firebase 3-4 times in a single day?

Even just a public pledge from Google saying that they will open source the
full featured Firebase if they decide to close down the devision will go a
long way to alleviate this fear.

~~~
aeosynth
Horizon[0] was announced yesterday; it's basically an open-source Firebase
built on RethinkDB.

[0]:
[https://github.com/rethinkdb/horizon](https://github.com/rethinkdb/horizon)

~~~
guelo
Horizon is only the "realtime db" portion of Firebase and it's only for
Javascript, not Android or iOS. The mobile app realtime network connection
tech is especially tricky to get right without draining a user's battery by
doing things like constantly polling the backend. I have not seen anything
from RethinkDB along those lines.

~~~
hiphipjorge
> by doing things like constantly polling the backend

RethinkDB doesn't require polling. It's like their #1 feature and
differentiator from other non-sql databases.

~~~
EGreg
What do they do?

We use websockets in our realtime platform.

~~~
coffeemug
The Horizon client uses websockets to connect to the Horizon server. The
Horizon server uses RethinkDB's protocol[1] to connect to the database.

[1] [http://rethinkdb.com/docs/writing-
drivers/](http://rethinkdb.com/docs/writing-drivers/)

~~~
guelo
Websockets cannot be as efficient as native network management code.

~~~
jkarneges
What does this even mean? WebSockets can be used natively. In fact the
Firebase client uses WebSockets, same as Horizon.

~~~
guelo
Sorry I was confused about terms, what I was thinking of was Javascript vs
native. Native code can do more than a browser sandboxed client can.

------
primitivesuave
Firebase is an incredibly powerful tool, and in a sense is a "democratizing
force" in web development. Now anyone can build a complete web application
without needing to know anything about setting up servers, content delivery
networks, AWS (which is still quite difficult to use), and scaling. I teach
kids as young as 10 years old to build iOS apps and websites with Firebase -
they can develop locally and push to Firebase hosting with a single command.
After exploring this new update, I can say with confidence that _literally
everything_ is easy-to-use now.

Whenever there is a Firebase announcement there are many replies along the
lines of "this won't work for me because it's owned by Google, may be
discontinued, doesn't have on-premise solution, etc". If these are your
thoughts then you are missing the point of Firebase. It enables small web
development shops like mine to focus on building beautiful web applications
without having to give up manpower toward backend engineering. The cost of
using Firebase is peanuts compared to the savings in employee hours.

Perhaps some day we will have to migrate elsewhere, but I find that
possibility extremely unlikely because the clear amount of effort it took to
create the Google-y version means this is a long-term play.

~~~
samastur
We are not missing the point. Some of us just happen to value other things
more than convenience.

There's no shortage of discontinued products that were cancelled even though a
lot of effort and money was poured into them. Amount previously invested is a
sunk cost and shouldn't even matter when deciding if continue a
service/product or not. Just because you have already dig a hole doesn't mean
you should keep digging even though you can't profit from it.

~~~
primitivesuave
This is a good point. However, products are usually discontinued because they
no longer fit in with the core business of the acquirer. In this case, Google
is making a clear statement that Firebase will be an integral part of the
Google Cloud experience for everyone (hobbyists all the way to apps at scale).

------
zammitjames
We were part of the Early Access Program for the expanded Firebase and used it
to build our music collaboration app Kwaver. With the new features, they did a
nice job of collecting a bunch of related mobile products (Analytics, Push
Notifications, Storage, Authentication, Database, Deep Linking, etc) into a
pretty cohesive platform, and it's saved us a bunch of time.

With Firebase Analytics we can track events, segment audiences (according to
user properties; active, dormant, inactive) and take action according to the
user segment. We are able to send push notifications (also using Firebase) to
dormant male users who play the piano for example. Another cool feature is
Remote Config, which gives you the option to ship a number of separate
experiences and track the user interaction. Like A/B Testing but way more
flexible.

For us, the best product is the existing database product they had, as it
really improves our user experience to ditch the 'pull to refresh' button' and
have our app respond to changes live.

We have been waiting for Google to provide developers a more complete mobile
solution for a while now, and they’ve done it superbly through Firebase!

Feedback; It would be really cool if Firebase could implement UTM codes to be
able to track user acquisition and be able to automate actions according to
User Properties.

Shameless plug: if you're a musician (or a music fan), we'd really appreciate
if you could download our music collaboration app, try it out and give us
feedback. It’s available for free on the app store; The following link will
re-direct you there later today. [http://kwaver.com](http://kwaver.com)

------
timjver
I love Firebase, but the Swift code in the iOS guide is of really low quality.
For example ([https://firebase.google.com/docs/database/ios/save-
data#dele...](https://firebase.google.com/docs/database/ios/save-
data#delete_data)):

    
    
        if currentData.value != nil, let uid = FIRAuth.auth()?.currentUser?.uid {
            var post = currentData.value as! [String : AnyObject]
            var stars : Dictionary<String, Bool>
            stars = post["stars"] as? Dictionary<String, Bool> ?? [:]
            // ...
        }
    

What this should really be:

    
    
        guard let post = currentData.value as? [String : AnyObject],
        uid = FIRAuth.auth()?.currentUser?.uid else { return FIRTransactionResult.successWithValue(currentData) }
    
            let stars = post["stars"] as? [String : Bool] ?? [:]
            // ...
        }

~~~
ianbarber
Great suggestion! Pull requests welcome as well if you have time:
[https://github.com/firebase/quickstart-
ios/blob/master/datab...](https://github.com/firebase/quickstart-
ios/blob/master/database/DatabaseExampleSwift/PostTableViewCell.swift#L50)

~~~
timjver
Oh cool, I already sent feedback through the Firebase website but I'll do this
as well.

------
chatmasta
Interesting that Google is doubling down where Facebook divested. The obvious
difference is that Google has a cloud platform and Firebase is a funnel into
it, whereas Facebook had nothing to funnel Parse users into.

I wonder if Facebook will ever launch a cloud platform. They've got the
computing resources for it.

~~~
ryanobjc
Your first hint that Google was very serious about cloud, was when we hired
Diane Greene:

[http://www.businessinsider.com/google-hires-diane-greene-
to-...](http://www.businessinsider.com/google-hires-diane-greene-to-run-
cloud-2015-11)

Also when Urs publically states he wants Google Cloud revenue to be bigger
than adwords, that ain't nothing:

[http://www.businessinsider.com/urs-holze-talks-google-
cloud-...](http://www.businessinsider.com/urs-holze-talks-google-cloud-beat-
search-2015-11)

I know it's popular to be cynical about Google and how we'll deprecate
everything just as it's popular, but that kind of cynicism isn't really good
for your health.

------
bwship
We've been using the Firebase platform for a while now. It's pretty cool to
see them expand from 3 products to ~15 overnight. I'm most excited about their
analytics and crash reporting. I must say that their system has been one of
the best we have used in a longtime, I am really excited to see other aspects
like analytics and ads being housed under this same umbrella, as I think it is
going to help with development time overall. One area that I'd like to see
improved though is a deeper querying language for database, or even better
would be a way to automatically export the system in realtime to a postgres
database for better SQL type analytics.

------
davidkhess
The concern I've always had with Firebase is the lack of a business logic
layer between clients and the database. This tends to force the business logic
into the clients themselves.

Trying to change the schema if you have Firebase clients deployed that can't
be instantly upgraded via a browser refresh (i.e. iOS and Android mobile apps)
seems an extremely challenging task.

~~~
atom-morgan
> Trying to change the schema

That's the biggest question I have after looking over the site. Coming from
the Mongo/Mongoose world what happens in this case?

~~~
davidkhess
There used to be a thread in the Firebase Google group about this which is
gone now. It still lives on here:

[http://grokbase.com/t/gg/firebase-
talk/154mr25k86/firebase-m...](http://grokbase.com/t/gg/firebase-
talk/154mr25k86/firebase-mobile-app-future-proofing-strategies-for-handing-
schema-evolution)

That thread is not encouraging.

Edit - found the original thread here:

[https://groups.google.com/forum/#!topic/firebase-
talk/LjHATl...](https://groups.google.com/forum/#!topic/firebase-
talk/LjHATl8_XBs)

------
ivolo
We used the original Firebase database product to build
[http://socrates.io/](http://socrates.io/) 3.5 years ago, and I remember
getting Socrates running in a few hours. I’m looking forward to seeing them up
the bar on speed of development / ease for their next 10 products :) Nice work
team!

------
mybigsword
way too risky to use it for startups. Google may discontinue this project at
any time and you have to spend months to rewrite everything for another
database. IF google open source it and we will be able to install it on
premise and patch without Google, that would be ok. So, I would recommend to
use PostgreSQL instead.

~~~
WalterSear
Google is dogfooding this in it's other companies, like Nest, fwiw.

~~~
jfoster
They always say that. Google's internal customers also get to continue access
after a product has "been retired" (eg. Chrome Web Store still using Google
Wallet's web payments) and are in a different position than Google's external
customers when it comes to negotiability and notification period.

------
fredthedinosaur
When will it support a count query? now to be able to count number of children
I have to download all the data. Count is such an important feature for me.

~~~
vinaybn
You could run your writes as transactions that increments a count wherever you
need one.

------
fahrradflucht
I have build apps with firebase in the past and the feature I missed the most
was performing scheduled tasks on the database. Now we are getting this BIG
app platform update and this feature is still not in there. AWS Lambda with
Scheduled Events for a long time to come :sad-panda:

~~~
subpixel
Do Google Cloud Functions (referenced above) not fit that bill?
[https://cloud.google.com/functions/](https://cloud.google.com/functions/)

I'm also keen to use Firebase without having to run a separate server to
handle logic for payments, email alerts on search terms, etc.

~~~
fahrradflucht
Last time I checked it was impossible to do scheduled tasks. But it's in alpha
stage, so maybe that's coming.

------
joeblau
I remember walking into Firebase's offices about 4 years ago when it was 4
people on Townsend St in SOMA in a 300 square foot share office space. It's
amazing to see how far they've come; Congrats to the whole team.

~~~
mayop100
Thanks Joe! : ) I remember that day.

------
dudus
Even if you don't want to use any Firebase service you might still want to use
it only for Analytics. Drop the firebase SDK in the App and you are done.
Free, unlimited and unsampled Analytics reports for your App.

[https://firebase.google.com/docs/analytics/#implementation_p...](https://firebase.google.com/docs/analytics/#implementation_path)

[https://support.google.com/firebase/answer/6317517?hl=en&ref...](https://support.google.com/firebase/answer/6317517?hl=en&ref_topic=6317489)

------
skrebbel
As a current Firebase customer, I'm pretty thrilled about all this (especially
since I was afraid Google would pull a Facebook here). However, there's quite
a bunch of API changes and absolutely no info about how long the old JS
library, endpoints, etc etc are to keep working. Should I get stressed out?

~~~
jwngr
(Firebase engineer here)

The old SDKs will continue to work! We worked extremely hard to make sure
everything was backwards compatible with them. We most certainly do not want
to break any existing customer apps. Check out the migration guides [1] to get
your app updated to the new SDKs.

We understand migrating is not easy or always convenient. If you run into
issues or something that used to work seems to be no longer work, please let
us know. We will be giving you advanced warning if and when things get turned
off.

[1]
[http://firebase.google.com/support/guides](http://firebase.google.com/support/guides)

~~~
skrebbel
Great! I found the guides but I couldn't find this info in there.

I like the new features and also the new JS API so I think that's plenty of
incentive to migrate. Thanks!

------
maaaats
This may be a stupid question, but: What do you use it for? Cannot everyone
basically edit the client code and do whatever with your data? I've only used
Firebase for prototyping.

~~~
welanes
I use it for its main selling point: a realtime backend.

With Firebase, Vue-Fire (Firebase bindings for Vue.js), crossfilter and
chart.js, you can whip up a functional and sweet analytics dashboard or
[insert pet project here] in a weekend.

It gets the headache of a backend (and user auth) out of the way.

As for security - the Firebase security rules and server side authentication
allow you to lock things down.

~~~
kuschku
> With Firebase, Vue-Fire (Firebase bindings for Vue.js), crossfilter and
> chart.js, you can whip up a functional and sweet analytics dashboard or
> [insert pet project here] in a weekend.

> It gets the headache of a backend (and user auth) out of the way.

You can get the same if you use other tools.

The realtime stuff is the only big thing they do most other projects don’t,
and even for that there are currently several quite well working
implementations out there.

~~~
welanes
Sure. But now I have all this in one service. And when that pet project moves
from web to a native app, Firebase has all the trappings to make it easy.

A lot of eggs in one basket admittedly, but that basket looks pretty robust
for now.

------
oceankid
The thought of reliable, managed hosting is interesting.

But how does one extend an app outside storing and fetching data? What if you
want to run a background job to send emails, parse a complex csv or create a
custom pdf and write to firebase storage?

~~~
mbleigh
Firebase projects are deeply integrated with Google Cloud, so you can spin up
backend resources such as Google Cloud Functions, App Engine, and Compute
Engine. Using the Node.js server SDK you can watch for changes in the Firebase
Database and act on them. We're thoughtfully considering more holistic ways we
can help here.

------
WalterSear
I'm in talks with a company regarding building an application for users in
developing countries, where Android 2.0 is still the dominant OS version.

Firebase 2.0 looks like a great fit for their needs otherwise, but is the new
sdk backward compatible to Android 2.0?

------
pier25
So how would one address server side logic?

Like for example doing something with the data before sending it to the
client?

~~~
angryasian
I think this is the biggest issue with firebase that I can't find an answer
to. It seems everyone is ok with just doing everything on the client side.
Schema changes, business logic, etc.

~~~
pier25
From what I've seen, all backend duties are implemented in a server acting as
another client to Firebase. Usually a Node server since Firebase has provided
a JS SDK from the start, but I've seen implementations in all major languages.

You either implement some cron task in that server that periodically makes
stuff with Firebase, or you use an endpoint in Firebase and use it a task
queue for the server.

I'd would be great if someone with more experience could provide more info on
how these backend duties are performed.

Edit: see this for more info
[https://groups.google.com/forum/#!topic/firebase-
talk/r4d5H7...](https://groups.google.com/forum/#!topic/firebase-
talk/r4d5H7ffsZM)

------
albeva
I think services like firebase are a very scary thing. Too much dependence on
one vendor, too much black box magic, too much logic that is beyond control.
And services like this contribute to general dumbing down of software
developers. We're heading towards world of script kiddies where html and js
rule and all complex logic is handled and controlled by service providers. Is
it a good thing? You can deliver fast, but in the long term is it worth it?

------
blairanderson
From my experience with the new API, it's a little less intuitive and worse
documentation. I think it's rad that Google invested a ton of resources into
firebase.

we have been super successful with firebase, and are proponents of using it as
a notification system and less of a datastore. That would be easy, but unwise.
Use it to notify clients of changes so they can fetch data. Read from
Firebase, write to your own server/DB.

------
robotnoises
I don't think it was explicitly mentioned in the keynote, but it looks like
they updated pricing:

[https://firebase.google.com/pricing/](https://firebase.google.com/pricing/)

Can't find the old pricing now, but it seems similar, but with less plan
types.

~~~
mayop100
Yes! We updated our pricing. We have fewer plan types (just 3 now), and now
have a pay-as-you-go plan which is designed for maximum flexibility. This
pricing is cheaper for almost every developer.

~~~
robotnoises
Oh sweet, I just noticed that under the new pricing, the free plan includes a
custom domain and ssl cert. This was literally the only reason I updated one
of my legacy hobby apps to the old Spark ($5 per month for the uninitiated).

------
Philipp__
It looks like it is here to stay... But that surprise Parse shutdown will
leave me asking, what if...

------
1cb134b57283
As a server engineer already having trouble finding a new job, how worried
should I be about this?

------
ddxv
This appears to just be a way to limit the growth of third party tracking
which threaten Google by encouraging user acquisition from many sources.

I say this because they dont specifically say they will postback events to
advertising networks other than Google's.

------
wiradikusuma
For Firebase/Google Cloud Platform engineer: does it mean Google Cloud
Endpoints is being phased out? if i'm already using Google Cloud Endpoints,
should i move to Firebase? what's the advantage?

~~~
oaktowner
Hi -- PM for Endpoints here.

Endpoints is going strong and will have a release later this year that adds
support for hosting APIs on more of our compute offerings (Compute Engine,
Container Engine, App Engine Flexible Environments). We'll also be adding
features, reporting, etc.

~~~
wiradikusuma
thanks! I just feel Endpoints doesn't get enough love from Google. It works
nicely, but with minimum feature compared to Firebase (which I don't mind, let
it be boring as long as it's not deprecated)

------
aj0strow
I've had only good experiences with firebase. They added an HTTP api, web
hosting, multiple security rule preprocessors (pain point), and got faster and
cheaper. Yeah only good things.

------
tszming
The biggest problem with any Google cloud services nowadays is you don't know
if it was/will blocked in China, of course it is okay if you don't care the
users in China.

------
mcv
I intend to use Firebase as at least a temporary backend while developing my
app. Maybe I'll move to a real server later, but during development it's
really easy to just have some place you can shoot json at. And I can always
add interaction later by having some other application listen to it.

I don't really need the actual realtime communication stuff all that much
(though it might turn out to be useful), but just a lightweight place to store
json is really useful.

------
robotnoises
Not expressly mentioned anywhere that I've seen: the Free plan now includes
custom domains + SSL cert. Under the previous firebase.com, that was $5 a
month.

Sounds good to me!

------
intellegacy
Is there a tutorial that explains how to setup a backend for user-taken
videos? for an IOS app

one thing I liked about Parse was that it's documentation was newbie-friendly.

~~~
hbhakhra
I've used firebase for other apps but not video storage. From what I've read
about how it works, its better to store the media in some 3rd party system
such as S3 and keep the link to the file in firebase. Here is one good thread
I found with a little searching:
[https://groups.google.com/forum/#!msg/firebase-
angular/xb2be...](https://groups.google.com/forum/#!msg/firebase-
angular/xb2besi__lU/1MyHJfwCerUJ)

~~~
mbleigh
Firebase Storage launched today and is perfect for things like storing video!
[https://firebase.google.com/docs/storage/](https://firebase.google.com/docs/storage/)

------
gcatalfamo
Can somebody explain the new Firebase reframing towards GCP? Maybe with
another provider analogy? (e.g.,Firebase is to GCP like Parse is(was) to
Facebook)

~~~
inlined
I cover this briefly in my talk today: "Migrate to Firebase" [1]. Google Cloud
Platform gives you massively scalable & robust building blocks at the IaaS and
PaaS level. You can use these to do just about anything as long as you have
the time and expertise. Combining building blocks to follow best practices
isn't always trivial, so Firebase offers the next layer higher in the stack.
With Firebase you can mix and match pieces that integrate together to be a
turn-key backend. We also offer additional services to help you make your app
successful once it's been built.

Firebase and Google Cloud Platform play nicely together and we've made sure
you can mix and match the pieces you need. E.g. Firebase Storage lets you use
Firebase Rules to secure Google Cloud Storage. The new server-side APIs for
Firebase are authenticated with the Google's IAM policies.

The two teams are partners and we're excited to be working together.

1\.
[https://events.google.com/io2016/schedule?sid=b4641ff7-0bef-...](https://events.google.com/io2016/schedule?sid=b4641ff7-0bef-e511-a517-00155d5066d7#day1/b4641ff7-0bef-e511-a517-00155d5066d7)

~~~
gcatalfamo
This is great! thank you!

------
kawera
Question: Would Firebase be a good option where the desktop/web app is the
main access point, mobile been secondary (around 3:1) ?

~~~
mayop100
Most likely, yes. Everything we have for mobile web works just as well for
desktop web too.

------
welanes
FYI, new docs on data structure mention rooms, which was an example in the old
docs. Should read messages or conversations:
[https://firebase.google.com/docs/database/web/structure-
data...](https://firebase.google.com/docs/database/web/structure-
data#flatten_data_structures)

------
Kiro
I'm building a simple web app where I want signed in users to be able to add a
JSON object to a database and then list all JSON objects publicly. Only the
user who created the object should be able to edit it. Is this a good use-case
for Firebase or should I look into something else?

~~~
espeed
yes, Firebase allows you to isolate user data, and it has built-in auth API.

------
eva1984
Feel like the new Wordpress/Drupal/CMS, just in App space.

------
ssijak
What is the state of AngularFire library, there are no guides for angular in
the new documentation? And when will the angularfire for angular2 be ready to
use?

~~~
jamest
We launched AngularFire2 into beta at ng-conf earlier this month:

[https://github.com/angular/angularfire2](https://github.com/angular/angularfire2)

------
dmitriz
Is user email confirmation finally supported by Firebase? Last time I checked
it wasn't.

~~~
alfongj
Hi dmitriz! Yes. We have it (currently in iOS and Web, soon on Android), and
we're eager to get feedback and work to improve it!

If you try it out, ping me at alfongj at google dot com and let me know what
you think!

------
themihai
"... and earn more money." Is this really necessary on the homepage? Sounds
like a old misleading spam page

------
sebivaduva
for all of you looking for a real-time api platform that's open source and not
owned by a cloud giant come join us build telepat.io

------
Blixz
So, Still no offline persistence for JS. What a huge disappointment.

~~~
mbleigh
Check out my I/O talk on Friday (Progressive Web Apps on Firebase). While the
Firebase Web SDK doesn't support persistent offline just yet, we do have some
new ways to get the job done.

[https://events.google.com/io2016/schedule?filters=Firebase&s...](https://events.google.com/io2016/schedule?filters=Firebase&sid=ff641ff7-0bef-e511-a517-00155d5066d7#day3/ff641ff7-0bef-e511-a517-00155d5066d7)

~~~
pier25
Um... what about this?

[https://firebase.google.com/docs/database/web/offline-
capabi...](https://firebase.google.com/docs/database/web/offline-
capabilities#section-presence)

~~~
mbleigh
The Firebase JS SDK currently supports non-persistent offline. So long as you
keep the tab open, Firebase works great offline!

However, if you go offline and then try to refresh the content, none of it
will be persistently stored or accessible until you go back online.

~~~
pier25
Thanks for the clarification.

I was hoping to use Firebase on a React Native app but I do need persistence.
Do you have or plan to make some wrapper of the native iOS/Android SDKs for
React Native?

------
choward
Provide a self hosting option or GTFO.

~~~
milesward
[https://github.com/rethinkdb/horizon](https://github.com/rethinkdb/horizon)

