I saw this post by an AWS engineer on building apps with their relatively new library AWS Amplify, it seems to be integrating quite perfectly with expo out of the box but I am seeing almost no discussions here in the expo forum:
In general which library does the expo team recommend? Does AWS Amplify or Firebase for better compatibility?
I use a couple of portion of Amplify. I use the API graphQL client to access the AWS AppSync graphQL service. I also use Amplify Authentication for user login. I feel like the graphQL client is more straight forward than the Apollo client. However, I haven’t dug into either one of them to confirm feature parity. I think the difference can be attributed to the fact that the Amplify API client uses a similar method calling structure to communication to both REST or graphQL servers vice going all in on one or the other.
The Authentication service leaves a little to be desired. I wrote the authentication portion of my application about six months ago, so things may have changed since then.
Authentication flow, password reset, multi factor authentication were all fairly straightforward to set up. They offer an Authenticator component that you use to drop in authentication into an application. However, at the time that I was code it into my application, the Authenticator component had behavior that didn’t fit the authentication flow I desired. It’s been awhile, but I think it required the user to enter a phone number in order to sign up; however, don’t hold me to that.
I ended up making custom login, password reset / retrieval, account creation screens, and it works well enough for me.
Finally, there wasn’t any real integration with the Authentication service and third party login providers like Facebook or Google unless you wanted to get under the hood of the AWS Cognito service. I didn’t want to do that at the time. I don’t know if things have changed since then.
Here are some GitHub issue threads related to the third party login item I mentioned above: