Fabric and Firebase use different SDKs to calculate the crash-free user statistic and metrics such as active users. On Fabric, that is powered by Answers whereas on Firebase it's powered by Analytics, which also changes the way the metric is calculated in the first place.
Several things may cause Answers to discard events that might have led to a session. If an app rapidly transitions between foreground and background states, Answers will not report separate sessions for each period of time the app spent in the foreground if it spent less than 30 seconds in the intervening background states. Also, if something occurs that prevents a background event from being detected, Answers will not consider the prior foregrounding event as part of a session.
However, with Firebase, a user_engagement event is necessary to define activity. A user_engagement event is triggered when a user interacts with the app for a minimum duration, which can be controlled using the setMinimumSessionDuration() method call, but by default is set to 10 seconds. Analytics counts multiple app foregrounds/backgrounds as part of the same session as long as they are within 30 minutes of each other, versus the 30 seconds of Answers. Again, in Analytics, this 30 minutes is default but customizable.
In many instances, we see Fabric Answers counting more sessions and users than Analytics because it requires the app to have less time in foreground and background before a session/active user is officially captured and counted. This leads to small discrepancies in higher-volume apps and potentially larger discrepancies in low-volume apps with perhaps only several users and sessions per day.
Hope this helps, and let me know if you have more questions about this.