'In Unity how do you call a firebase async function and return the value to a calling function?

I am trying to call Firebase functions inside a "DAL" class as I want to create some abstraction. I cannot figure out how to return a variable from inside the callback, or how to pass in a callback to execute from the controller class I created. How would I make UserExistsInFirebase async and call that from a controller class like

    public void GetUser() {
        bool exists = await firebase.UserExistsInFirebase("User1");
    }    
public Task<bool> UserExistsInFirebase(string Username)
{
   bool isExists = false;
    reference.Child("Users").Child(Username).Child("Username").Child(Username).GetValueAsync().ContinueWithOnMainThread(task =>
    {
        if (task.IsCompleted)
        {
            DataSnapshot snapshot = task.Result;
            //checks to see if we found another user with the same username
            if (snapshot.GetValue(true) != null)
            {
                isExists = true;
            }
        }
    });
    return isExists;
} 


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source