HI Kevin!
This likely comes down to some legacy Unity support stuff. If you re-import the Firebase Authentication unitypackage (make sure you use the dotnet4 rather than the dotnet3 one), it should work itself out. Alternatively, locate `Assets/Parse/Plugins` and make sure `Unity.Compat` and `Unity.Tasks` are disabled or deleted and the same files under `dotNet45` are both enabled for "Any Platform".
The rest of this response is background, I find it interesting but you can ignore it if you wish.
So the problem comes down that Unity through to Unity 2017 shipped with an older version of Mono for its C# runtime. This was so old that it didn't actually have the `Task` class. As a result, Firebase (as well as other groups, such as Play for Google Sign In) adopted a drop-in replacement for `Task` (created for
Parse, as indicated by its name).
Around this time (Unity 2017) a more recent version of the .NET runtime was added as an optional feature, and made default late in the 2018 lifecycle (if I have my timelines right). This included support for the `Task` class, async/await keywords, and a number of additional "modern" C# features that make the language much nicer to work with. Firebase
still supports Unity back to 2017.4, which means that it must still support older versions of the Mono runtime (this is a recent change, and the minimum supported version was 5.6 in the not-to-distant past - only abandoned because it's increasingly difficult to even run Editor versions that old).
Which brings us to the main question, why are there two `Unity.Compat` and `Unity.Tasks` dlls in the Firebase SDK? The ones under `Parse/Plugins/` are the DLLs provided by the original Parse SDK. These contain a complete implementation of `Task` to support the asynchronous logic in Firebase. The files under `Parse/Plugins/dotNet45` conversely are just a shallow wrapper around the original Parse implementation, ensuring that existing code can function unchanged in modern .NET versions (this includes the ".NET Standard 2.0" and ".NET 4.x" Api Compatibility Level settings in modern Unity variants - why ".NET Standard 2.0" is actually >= ".NET 4.5" rather than closer to `dotNet3` is another post onto itself).
--Patrick