Firebase expands to become a unified app platform
firebase.googleblog.com
firebase.googleblog.com
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-...
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!
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.
RethinkDB doesn't require polling. It's like their #1 feature and differentiator from other non-sql databases.
We use websockets in our realtime platform.
One simple solution is giving each state a defined name, and keeping a socket open from mobile. If the connection is restarted, each side can name their current state, and the delta can also be easily synced.
Later on, changes can be directly transmitted via the socket.
(I am working on something like that currently myself).
It's not going anywhere.
AWS has a head start and a great product catalog, Azure has the windows/office/server ecosystem, but Google has been doing scaled computing for a very long time and has contributed to many of the innovations in the industry. Although they're newer with less features, what they do have is more advanced and the Google name carries a lot of weight and reputation.
Most corporations are still focused on just moving over to IaaS with compliance and security first and Google has done a great job building a solid foundation for this which should pay dividends in the future.
Yes but my point is AWS has more mindshare and MS has more leverageable pre-existing business inroads with a huge number of these corporations.
> and Google has done a great job building a solid foundation for this which should pay dividends in the future
That seems rational, but the countless examples of "worse is better" in life indicate that that outcome is far from guaranteed.
Never liked the downvoting idea, but if it must be, then it would be nice if people were at least required to comment while downvoting and open themselves to downvotes for their whacked, baseless downvotes.
I see this being thrown around here a lot. Buying into Google's PR is what this is. If you've valid points apart from BigQuery vs RedShift, I'd request you to enumerate them for me.
I have personally interacted with Googlers who lament the fact that 'no one internally bothers using most of GCP' and hence not being able to 'iterate/innovate as fast as AWS' is a key disadvantage despite their 'superior offerings', whatever that means.
Really? Have you actually used it or done any research?
1. Container Engine = built on kubernetes, faster and easier than the others
2. Compute Engine = VMs start faster, customizable rather than set sizes, live migration when the host has maintenance or starts to fail, NVME SSDs available with < 1ms latency
3. Networking = faster and more consistent performance, all the regions are connected which makes cross-regional/global deployments easier and more secure
4. Load balancing = actually routes the traffic automatically to the closest region and spills over based on capacity, not just DNS junk like the rest, no warmup or latency issues
5. CDN interconnects = cheaper bandwidth and lower latency using their partner CDN networks
6. Pub/Sub = great message system that doesnt need shards or anything to deal with for scaling, supports multiple subscribers and acks
7. gcloud = best shell access available to interact with pretty much everything, no keys or passwords to worry about
8. grpc APIs, fast storage/nearline, bigtable/datastore/cloud sql, Vision API, etc
Yes it's still new and there are a few frustrating issues, and AWS and Azure do have lots of products and their own special offerings, but the core Google platform is the amazing at running a bunch of servers/containers for a globally distributed app with high performance. We've tried them all and GCP has been the best so far.
They all have their own proprietary services which are valuable but it's completely your choice to use them.
It's not exactly the same thing but it achieves the same goal and is opensource.
API services are generated from RAML files (yaml) No code required for simple crud, biz logic can be hooked using http event handlers. Uses Elasticsearch for reads and Mongodb or Postgres for writes. Other DB can be hooked by writing the proper Db engines, it's all documented.
Docs & specifications at http://docs.telepat.io/. Hope this helps you.
Horizon.io ticks both boxes by offering a cloud SaaS :) one could say that is the ideal product!
Couchbase Mobile is open-sourced under Apache 2 and has all of the database and sync functionality of Firebase. From a database perspective it is more complete than Firebase. It also has enterprise level security, REST/Stream/Batch APIs, etc. Take a look and see if it meets your needs.
Realtime, Peer-to-Peer, Offline-First, Graph.
A podcast on its performance (25+M ops/sec) just happened on http://readthesource.io/ an hour or so ago, hangouts link: http://youtu.be/70dn1oZQFCk?a .
MIT / ZLIB / Apache 2 license - do whatever you want with it.
You can architect your app sequester these 3rd party services on the edge, making any rewrite much easier.
It's better to stick with open source stack. I like what Amazon is doing with AWS with services like RDS and ElastiCache. If one carefully selects the services on AWS, there is almost zero vendor lock in.
Google also had hiked the AppEngine price in Sept. 2011 which caused a lot of problems to early adopters.
This is a hard lesson each person learns on their own.
That's why I hate the whole SaaS idea - it turns products into services; something that should be permanent (as long as you can maintain the hardware it runs) into something that is ephemeral and ever changing. It's great for the service provider, but it totally sucks for the customers. SaaS drives entropy in the computing universe.
I'm not making a value judgement; I'm pointing out that SaaS is often picked for only its short-term benefits.
Link: https://events.google.com/io2016/schedule?sid=b4641ff7-0bef-...
https://www.firebase.com/terms/service-level-agreement.html
Though I think what you are looking for is Firebase being covered by a Deprecation Policy.
Which means you presumably saved months initially by using Azure, and got your product to market sooner. Everyone should be aware of the dangers of lock-in, and should carefully consider the value of it vs. the liability they're taking on. But I wouldn't say never use products like this. The value-add can be significant, even taking into account the fact that you may have to migrate off of it someday.
As a user of the Firebase iOS SDK, I was wondering why the SDK was getting so stale. The Quickstart guide used deprecated Swift, didn't offer Carthage support, etc.
I looked at the new docs, and I guess they ditched the old Quickstart format in favor of a bunch of examples. At least the code seems to be up to date, which is somewhat encouraging. I still wish for Carthage support, though.
I see a lot of people worrying about reliance on proprietary BaaS. I had services running on Parse when it announced the shutdown, and it really wasn't that hard to migrate. Firebase should be even easier to leave if necessary, since it's basically just a NoSQL data model. If you abstract your queries and avoid some bells and whistles, you can keep everything in one place for a relatively painless move that hopefully will never become necessary.
First off, I'm glad you like the new feature additions. We'd love to hear your feedback on Storage and FCM :)
Secondly, I'd love Carthage support as well, but there are a few things (built into Carthage) that prevent us from adding this: 1. Carthage requires iOS 8+ (dynamic frameworks only). Firebase supports 7+, and we build static "frameworks", so we'd lose that (which is still relevant in a lot of our developers). 2. Carthage is designed for open source (git based origins only), and while we'd love to get there, we currently ship everything as a pre-built framework.
Anyway, I continue to use (and enjoy using) Firebase for iOS and web.
The one big request I've always had was to be able to grab the client's IP address on request. Is that possible with this new Firebase and GCE integration?
I have many Firebase apps. Most of them have an intermediate server solely for this one reason.
I also use an intermediate server (ipify.org) to get the IP address. The only reason I need the IP address is to throttle users. If adjustable throttling was baked into the platform and not require me to write logic to handle it, that would be sweet too.
Looks like https://console.firebase.google.com is getting slammed. All of my attempted imports are failing.
Thanks, and congrats.
They're just not listed under "Projects using Firebase".
Short answer is no (well.. not without an intermediate proxy of some sort), but we're in the process of providing direct integration with Cloud Functions across many of the services that fall under the Firebase umbrella. So stay tuned!
Any news on deeper/more complex queries (chaining, or something like joins without rewriting our data in multiple places)
Or faster queries (server side I've seen some very slow .once calls taking hundreds of ms)?
Also I'd love some tips on how to better scale listener/trigger functions. I have many listeners (server side) and am migrating them to explicit client endpoint point functions to handle it horizontally (more api workers).
Google already offered a lot more more than other platforms (ios) in terms of analytics and this just makes that gap even bigger.
I'm wondering if you might be able to speak candidly about this whole acquire => shutdown pattern? Why will Google choose to keep running Firebase, instead of shuttering it and getting you guys to work on something else? And do you have any thoughts on why Facebook might have wanted to shut down Parse?
Firebase has been a popular choice for backend, but now there's no clear way (at least as reflected in the current docs) to take advantage of all the offer (FCM, testing, etc).
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.
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.
Shouldn't but does. It has it's own fallacy section:
https://en.wikipedia.org/wiki/Sunk_costs#Loss_aversion_and_t...
Also, not falling for the fallacy means admitting defeat. And the higher up one is in an organization, the worse admitting defeat is for your career. Having a product dead-ended by keeping on working on it forever is much better for manager/government official careers. So sadly, the fact that other people (above you) fall for the fallacy makes falling for it yourself rational in a lot of cases. Instead just systematically lower the priority, but never to zero.
In anything but a startup, I would treat any sunk cost above a minimal level as a firm commitment to continue at any cost. I would never have done so 5 years ago, but ...
Hahahahahaha. Aight. Whatever you need to tell yourself. This is even sillier than Parse; FB doesn't have anywhere near the track record of killing projects that Google does.
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
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] ?? [:]
// ...
}I wonder if Facebook will ever launch a cloud platform. They've got the computing resources for it.
http://www.businessinsider.com/google-hires-diane-greene-to-...
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-...
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.
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.
That's the biggest question I have after looking over the site. Coming from the Mongo/Mongoose world what happens in this case?
http://grokbase.com/t/gg/firebase-talk/154mr25k86/firebase-m...
That thread is not encouraging.
Edit - found the original thread here:
https://groups.google.com/forum/#!topic/firebase-talk/LjHATl...
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.
What's the point of BaaS if you still need another B to power it?
https://firebase.google.com/docs/analytics/#implementation_p...
https://support.google.com/firebase/answer/6317517?hl=en&ref...
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.
I like the new features and also the new JS API so I think that's plenty of incentive to migrate. Thanks!
[1] http://firebase.google.com/docs/database/security [2] https://events.google.com/io2016/schedule?sid=af641ff7-0bef-...
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.
> 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.
A lot of eggs in one basket admittedly, but that basket looks pretty robust for now.
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?
Firebase 2.0 looks like a great fit for their needs otherwise, but is the new sdk backward compatible to Android 2.0?
Like for example doing something with the data before sending it to the client?
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...
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.
https://firebase.google.com/pricing/
Can't find the old pricing now, but it seems similar, but with less plan types.
If this link is correct the new plans have a changed a bit, but pricing per GB seems to be more or less the same. A few dollars here and there. But this shows that the plans can and will change.
Smaller services like Compose.io (https://www.compose.io/pricing/) and mLab (https://mlab.com/plans/pricing/) seem to be charging around USD 15-18 per GB of DB for MongoDB. So either Firebase is less resource hungry for Google or Google's scale is allowing them to reap better efficiency or Google is subsidising Firebase and giving it almost at cost.
I say this because they dont specifically say they will postback events to advertising networks other than Google's.
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.
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.
Sounds good to me!
one thing I liked about Parse was that it's documentation was newbie-friendly.
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-...
If you try it out, ping me at alfongj at google dot com and let me know what you think!
https://events.google.com/io2016/schedule?filters=Firebase&s...
https://firebase.google.com/docs/database/web/offline-capabi...
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.
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?