The beauty of Firebase authentication is that it is simple and it just works. They take care of all the auth complexity and condense it down to a sensible asynchronous API and a unique identifier (UID) that you can use in your firebase. Their auth enables you to write client-side-only JS, following a backend as a service (BAAS) model. Plus, it's included at no additional cost.
However, Firebase currently offers only a limited set of auth providers. If, for instance, you would like to integrate with
Microsoft tools
using Azure AD, or use
Linked In auth, you'll need to use your own server and custom oauth code, or leverage a paid service like Auth0.com.
Without knowing your requirements, my general advice is to keep it simple for now and use the intrinsic auth, unless you have specific reasons to add the extra cost/complexity.