Firebase Authentication
Firebase authentication is used in client application to identify a particular user. And it is used to limit resources on the firebase. So it is strictly on the end user area.
Firebase Admin
Firebase admin is on the other hand, it is purely for backend. You can use it to define custom logic to Firebase and you can modify Firebase services to meet your needs. The following are some usecase scenario.
1. User Management
It is not always convenient to have to visit the Firebase console in order to manage your Firebase users. The admin user management API provides programmatic access to those same users. It even allows you to do things the Firebase console cannot, such as retrieving a user's full data and changing a user's password, email address or phone number.
2. Custom Authentication
You can integrate an external user system with Firebase. For example, you may already have a pre-existing user database or you may want to integrate with a third-party identity provider that Firebase Authentication doesn’t natively support.
3. Identity Verification
Firebase Authentication is primarily used to identify users of your app in order to restrict access to other Firebase services, such as the Firebase Realtime Database and Cloud Storage. But you can also use the service to identify these users on your own server. This lets you securely perform server-side logic on behalf of users that have signed in with Firebase Authentication.
4. Custom User Claims
In some cases, you may want to implement fine-grained access control for users already signed in with one of the supported Firebase auth providers such as Email/Password, Google, Facebook, phone, etc. A combination of custom user claims and application security rules provides this capability. For example, a user signed in with Firebase Auth's Email/Password provider can have access control defined using custom claims.
For more information see at firebase doc