Firebase is creating a GameObject that simultaneously marshals the C++ events into C# and makes the resulting event fire within the Unity thread, this is done under the hood as soon as the App library is initialized via lazy-loading. Unfortunately that GameObject is never set to DontDestroyOnLoad, so it is being unloaded upon a scene transition. If you have succeeded in getting Firebase to receive events in your Unity project, but events stop being received after a scene transition, this is why.
User Work Around:
Call "GameObject.DontDestroyOnLoad(GameObject.Find("Firebase Services"));" after you first reference the Firebase library that you are using. You could also re-parent it to an existing DontDestroyOnLoad object.
For the Firebase Team:
This could be fixed by adding "GameObject.DontDestroyOnLoad(firebaseHandler);" to the end of FirebaseHandler::Create.
However, it might be better to package the Firebase Services gameobject as a Prefab that the user drops into their scene, or to expose the FirebaseHandler class as public so that it can be put onto a DontDestroyOnLoad "master object" explicitly. Having a GameObject mysteriously appear in the hierarchy could cause issues for some projects; plus, it is nice being able to know exactly what objects are in your scene, when they are being created, when they are being destroyed, and why they are there.
Cheers!
-Chance