I find Amplify complicated, it is kind of difficult to get started with it. AWS UI is shit but services are outstanding. Google makes things easier with the help of nice UI where Amazon doesn't focus more on UI.
@@migueldomingos4570 They wanna get you emotionally invested in that shitty UI 😄 Soon, you'll realize that you're hooked to the cortisol and keep coming back for more 😂
Yeah, it's not a big deal as if you are seriously looking for a platform it's not a bad requirement. But for me and probably a lot of viewers of this channel who are hobbyists who just want to try it out, it's not a platform to make offhand concepts.
It's great that we have more alternative now on RT databases That will put pressure on the firebase team to release more awesome stuff for their platform if they want to stay at the top!! Thanks, Jeff to bring the info to us in such an exhaustive way and not just reading the specs
Very interesting! I've been working a lot in AWS lately, but I like Firebase, it was neat seeing a comparison of the too. Another thought on the to-do demo is instead of using the GraphQL API, you could use the REST API and setup a todos end point. At that point you would have to write a lambda for the end point, to GET and POST the data to the dynamoDB (that's the easy part). The tricky part would be the real time aspect. My first thoughts is to use web sockets and have the svelte client connect to another API end point to do that. The nice thing about DynamoDB is you could have the DynamoDB stream connect directly to a lambda. So every update to the DB will trigger the lambda that can emit a broadcast to all the connected clients. Would that be simpler then GraphQL? I dunno, but it's another way to do it if you don't like the complexity of GraphQL and subscriptions. If you don't have the requirement of real time then it's way easy.
That is an interesting thought. A websockets implementation could def get the job done, but the Apollo client is nice because it can also handle optimistic updates and caching easily.
Top in this. Ive done sockets in serverless using dynamos downstream service. This replicates the effect. But each open stream costs more on the socket gateway. It can accrue over time very quickly. For the realtime data update apollo is far more superior.
What I ended up doing in one of my projects is use the best of both worlds. Firebase is really good for interacting with the user interface so created read model that uses firestore and users can only ever perform reads from the Firebase backend. Then in AWS I implemented lambda functions for the API that is secured by cognito authentication. The main reason as to why I picked AWS was due to fact that I was suppose to implement a data pipeline whereby multiple lambda functions will communicate with one another via message queues (SQS) and update data in DyanmoDB. Since AWS has a good feature called DynamoDB streams I was able to attach lambda functions that listen to record updates in the database and update the read model which is essentially updating firebases firestore. With this done I was able to use realtime functionality of firebase but with a data processing backend in AWS. This basically was inspired by the CQRS pattern martinfowler.com/bliki/CQRS.html. No Appolo was used in this by the way. Other thing you will need to consider is using authentication user token in firebase in order order to integrate cognito and firebase auth users
Amplify pros: - super easy user authentication out of the box - good documentation for all platforms (web, vue, react, ios, etc) Amplify cons: - DynamoDB was built for massive quantities of data so the relational model is proprietary and confusing - You can't get away with only using "Amplify".. you'll have to use other AWS services I dropped Amplify on my latest project and am so much happier back with Firebase. What Firebase does better than Amplify is its ability to totally abstract itself from the mothership (aka Google Cloud, and AWS for Amplify). You can go start to finish without leaving Firebase on your project. If you use Amplify, chances are you're going to need to branch into the overwhelming AWS-land.
One thing not covered, that I would really like to see covered is cold-start differences. My understanding is that cold starts take a lot longer on Firebase than Lambdas/Amplify functions
Top video. I have some heavy experience with amplify. I am not a fan of the cli. The SDK is brilliant. But the cli bootstraps infrastructure and code together. Like for example. Setting up auth the quick way in the cli enforces sms codes? To get rid of that you have to destroy it and rebuild. Theres also a massive risk in editing their generated infrastructure (cloudformation). In terms of appsync to dynamo. I have just removed appsync all together. I just use aws document client to connect to dynamo with the auth credentials from amplify/cognito. To tldr it. We use amplifies sdk. Dynamo and lambda. The analytics are great too and quick to implement. Its interesting on push notifications to. I actually have firebase launching them instead of aws. But i store the push notification acceptance code in dynamo. I would rate the sdk much better than the cli. The cli i would say provides more minimum flexibility. It gets the resources up there. But all those manual changes after? Not stored anywhere so your disaster recover becomes a bit more tedious Catch me on slack if you want more info ;)
Hey, I'm building a PWA with Amplify and Appsync, I'm fairly new to all this stuff, some tips would be great. I was directed to an example survey pwa on AWS so I cloned the repo and followed all the steps and got it set up. So I'm wondering now should I strip it down and build up my own app using it as a base or start from scratch with a new amplify project, thank you!
Fireship the coincidence this time was honestly uncanny though. You are on the ball. Keep it up! Personal request: a deep dive into some tips/tricks to improve performance and reduce costs on Firebase or Amplify. I know you’ve touched these topics before but would be awesome to see you revisit this topic as many of your viewers are building apps on these services on a tight budget
I love AWS, but Amplify & Cognito are not your best choice if you are looking to avoid the complexities of setting up user authorization. Which seems to be the point of using solutions like Amplify or Firebase in the first place. I lost hours and hours of developer time trying to get it to work. The difference in speed & complexity for setup are confirmed by this video, Firebase seems so much easier to get going compared to the Amplify/GraphQL steps showed during comparison near end of video.
Request a video on AWS Amplify, specifically the Data store GraphQL API and Security rules. I've tried Firebase, it's definitely more developer-friendly than AWS Amplify. But for complex fin-saas applications, AWS Amplify takes the cake thanks to its relational data modelling and flexibility.
Is it smart to build on Amplify and then migrate to custom Auth Modules(Instead of Cognito or App Sync) and Custom Dynamo DB interaction? That way we can mitigate the disadvantage of AWS Amplify and stay for long after scale!
Overall, how limiting do you think Firestore is compared to GraphQL/dynamo db. Do you think the limitations of Firestore do not affect the majority of apps and only a few percentage of applications will need the flexibility found in GraphQL? Thanks
Firestore is actually more flexible then DynamoDB for data modeling imo, but GraphQL can use ANY data source. If you hit the limitations of NoSQL, you can drop in a graph database or full-text search engine and still use the same realtime SDK.
You have to add the API-gateway (bridge between the client http call, websocket...) cost if you create a serverless API with AWS. So the cost per function is much more : 0.2 per million for lambda call + other lambda function cost + 1.2$ per million call (slightly more or less depending on the AWS region).
Yea, look at all the boilerplate code you have to write and use when using Amplify. Also Firebase is cheaper when it comes to the actual data reads/writes.
Firebase lets you attach a snapshot to a filtered collection, for example .firestore() .collection("collection") .where("user", "==", user.email) .onSnapshot(...) What would the equivalent be on amplify? As far as I can tell, your graphql subscription listens for all todo's, what if you wanted to only listen to those owned by a specific user?
oh fs. I use firebase with vuex and have buttons to refresh the store. Didn't know I could create a livelink :( Would love a video on what firebase classes as reads while setup as a live link.
as someone how has run a consultancy for a decade making dozens of production apps, honestly, this stuff is great for toys and learning but anyone using this in production should be shot. you should never hitch the success of your company to something so fragile. We have seen other services like this die out and giving google or amazon complete control over the inner working of your apps, data, and privacy is a recipe for absolute disaster.
This has crossed my mind recently as a new developer. But many software houses use their solutions in production, particularly AWS, of course you know a lot more than me but are you being slightly over the top?!
It's a bunch of Google Cloud services linked together in a very nice way. So you could write your app fully serverless. List of services for development is: Functions (backend), Real-time Database, Hosting, File Storage, Authentication and more. Updates in DB triggers Functions and update your UI automatically, Upload of file to File Storage triggers other Functions, etc.
bro this is coming what to do? Failed to compile ./src/index.js Module not found: Can't resolve './App' in '/Users/saatyakthegreat/Downloads/react-firebase-chat-master 5/src'
AWS yeah jump on it if u like missing documentation. I remember posting how to upload / dl an image (took me hours to figure out) to AWS bucket storage on ios SWIFT 3(I think) in 2016 on SO that made tens of K views / ups. Because their doc was simply not working .... and BTW, FS and cloud FS are so well conected that it REALLY makes serverless apps candy dev.
Man I love your videos. I especially like all the movie cuts for humor. I watched most of them on first release. It makes watching programming stuff (which is dry by nature - no pun).. much much better. You've been to the rodeo and I appreciate your content and your rationale based on experience. Thank you!
I use Amplify the reverse way. I first create the backend resources in AWS, then configure the Amplify SDK in the app to use the existing backend. This way I feel more confident.
ive just tried to set up amplify and noticed that amazon docs are big bs. Before even explaining how to do basic stuff (Like correctly setting up your project) in JS you already get React examples. For the config they have this "super fancy" CLI which implies it helps you configure shit but it doesnt.
Does GraphQL require a "rigid" schema, that is, If I want to retrieve documents with some variations in the attributes in the same collection, can I read/write them with GraphQL, even when they don't match completely the schema in graphQL file?
Hi can someone explain.. do we not need graphql with firestore? is there a use case to use graphql with firebase/firestore? or only with AWS amplify? thank you so much!!
Did you have to get a copyright license to use footage and snapshots from movies like "the terminator" If so, how did you? I need this info for a project that I am doing.
Great video! I build IoT solutions hosted on S3 with a serverless backend. Although accessing data may be more expensive in terms of adding big data it feels like the ease of use with Kinesis Analytics was the selling point for me. I feel like I needed to learn GraphQL anyway.. My vote goes to Amplify.
You should also mention Firebase is not accessible in China mainland, I cannot imagine any product owner will think this is a hard to decision when one cannot reach to the biggest market in the world.
you definately need firebase for the analytics, crashlytics, and ads, amplify analytics is trash. however i personally use both firebase and amplify on the same app.
Great comparison. Are you considering making a course on amplify? I'd love to see that. I personally use firebase, but we're implementing Amplify in our project at work.
great video! despite people from comments are arguing AWS is hard to use, I think AWS amplify cool. Docs are really well explained, and I agree that UI is not that friendly. do you recommend me any getting started video or course of firebase ? I'm struggling a lot with their docs. cheers mate!
Thank you for the nice video! In terms of pricing, Firebase is $0.6 read/ $1.8 write per one million query ? It seems that pricing of Firebase is based on 100,000.
My one question would be does Spark Plan Free tier expire? Cause im currently trying to finish an app. I have already been using Firebases server to host it.. Not really going over the limit as I'm the only one who has the app.. With all that being said, will i have to pay for anything at the end of the month or so? lol Im so confused.
Thanks for the video, fire-base best to use for flutter apps, and conducting A/B testing. Please do a video on aggregated document on firestore when developing with flutter. If you already have such video please share link.