public static Task <DependencyStatus> CheckAndFixDependenciesAsync() { return(TaskExtensions.Unwrap <DependencyStatus>(FirebaseApp.CheckDependenciesAsync().ContinueWith <Task <DependencyStatus> >(delegate(Task <DependencyStatus> checkTask) { DependencyStatus result = checkTask.Result; if (result != DependencyStatus.Available) { return TaskExtensions.Unwrap <DependencyStatus>(FirebaseApp.FixDependenciesAsync().ContinueWith <Task <DependencyStatus> >((Task t) => FirebaseApp.CheckDependenciesAsync())); } return checkTask; }))); }