question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Bug]Firebase.FirebaseException: A headful operation is already in progress. Please wait for that to finish

See original GitHub issue

[REQUIRED] Please fill in the following fields:

  • Unity editor version: 2020.2.7f1
  • Firebase Unity SDK version: 8.7.0
  • Source you installed the SDK: unitypackage (.unitypackage or Unity Package Manager)
  • Problematic Firebase Component: Auth (Auth, Database, etc.)
  • Other Firebase Components in use: _____ (Auth, Database, etc.)
  • Additional SDKs you are using: _____ (Facebook, AdMob, etc.)
  • Platform you are using the Unity editor on: Windows (Mac, Windows, or Linux)
  • Platform you are targeting: Android (iOS, Android, and/or desktop)
  • Scripting Runtime: IL2CPP (Mono, and/or IL2CPP)

[REQUIRED] Please describe the issue here:

I use this example to log in apple id on Android.

Firebase.Auth.FederatedOAuthProviderData providerData =new Firebase.Auth.FederatedOAuthProviderData(); providerData.ProviderId = “apple.com”; providerData.Scopes = new List<string>(); providerData.Scopes.Add(“email”); providerData.Scopes.Add(“name”); Firebase.Auth.FederatedOAuthProvider provider = new Firebase.Auth.FederatedOAuthProvider(); provider.SetProviderData(providerData); auth.SignInWithProviderAsync(provider).ContinueOnMainThread(task => { if (task.IsCanceled) { Debug.LogError(“SignInWithProviderAsync was canceled.”); return; } if (task.IsFaulted) { Debug.LogError("SignInWithProviderAsync encountered an error: " + task.Exception); return; }

Firebase.Auth.SignInResult signInResult = task.Result;
Firebase.Auth.FirebaseUser user = signInResult.User;
Debug.LogFormat("User signed in successfully: {0} ({1})",
    user.DisplayName, user.UserId);

});

Everything works fine on Android. But when I pull up the authorization page and click the home button, I go back to my game from the desktop.Then when I call SignInWithProviderAsync again in the same way, I get an error :

SignInWithProviderAsync encountered an error: System.AggregateException: One or more errors occurred. —> System.AggregateException: One or more errors occurred. —> Firebase.FirebaseException: A headful operation is already in progress. Please wait for that to finish. — End of inner exception stack trace — — End of inner exception stack trace — —> (Inner Exception #0) System.AggregateException: One or more errors occurred. —> Firebase.FirebaseException: A headful operation is already in progress. Please wait for that to finish. — End of inner exception stack trace — —> (Inner Exception #0) Firebase.FirebaseException: A headful operation is already in progress. Please wait for that to finish.<— <— UnityEngine.Logger:Log(LogType, Object) MobileLoginService:<FirebaseAppleLogin>b__13_0(Task1) System.Action1:Invoke(T) Firebase.Extensions.<ContinueWithOnMainThread>c__AnonStorey9:<>m__0() System.Func1:Invoke() Firebase.<RunAsync>c__AnonStorey11:<>m__0() System.Action:Invoke()

(Please list the full steps to reproduce the issue. Include device logs, Unity logs, and stack traces if available.)

Steps to reproduce:

Have you been able to reproduce this issue with just the Firebase Unity quickstarts (this GitHub project)? Yes. What’s the issue repro rate? (eg 100%, 1/5 etc) 100%

What happened? How can we make the problem occur? This could be a description, log/console output, etc.

  1. Download and configure this github project to make it run

  2. Modify the SignInWithProvider function: protected void SignInWithProvider(string providerId) { var providerData = new Firebase.Auth.FederatedOAuthProviderData(); providerData.ProviderId = “apple.com”; providerData.Scopes = new List<string>() { “name”, “email” };

       var provider = new Firebase.Auth.FederatedOAuthProvider();
       provider.SetProviderData(providerData);
       
       auth.SignInWithProviderAsync(provider).ContinueWithOnMainThread(signin_task => {
       if (LogTaskCompletion(signin_task, "SignInWithProvider")) {
         DebugLog("SignInWithProviderTask Completed:" + signin_task.IsCompleted);
       }
    
       if(signin_task.Exception != null) {
         DebugLog("SignInWithProviderTask - Exception: " + signin_task.Exception.Message);
         return;
       }
    
       DisplaySignInResult(signin_task.Result, 1);
    

    }); }

  3. Click SignInWith | Miscrosoft, open the browser and click the home button to return to the Android desktop, click app to return to the application, and click SignInWith | Miscrosoft again.

If you have a downloadable sample project that reproduces the bug you’re reporting, you will likely receive a faster response on your issue.

Relevant Code:

// TODO(you): code here to reproduce the problem

Screenshot_20220508-173751_Chess Minis

Issue Analytics

  • State:open
  • Created a year ago
  • Comments:9

github_iconTop GitHub Comments

1reaction
paulinoncommented, May 16, 2022

Thanks for this, @liuchong-94. I was able to replicate the behavior, and I can see how this is a bug. If a user accidentally tapped home while they’re in the middle of signing up with the Apple window, they’ll return to their app with the Apple window gone, and the app still thinks that the authentication process is ongoing even though the user can’t proceed on their end.

That being said, I’ve relayed my findings to the team. You may refer to this thread for updates. I’ll be marking this as a bug for now

0reactions
yangnnytaocommented, Nov 11, 2022

I guess this problem can be solved as long as the rollback function is prohibited in the middle process, But the process belongs to Firebase, and we can’t modify it

Read more comments on GitHub >

github_iconTop Results From Across the Web

com.google.firebase.FirebaseException: An internal error ...
This error appears if you have not clicked through the interstitial hero in the admin UI. Simply go to the "Authentication" tab of...
Read more >
FirebaseAuth - Google
FirebaseAuthWebException thrown if there is an operation already in progress, the pending operation was canceled, there is a problem with 3rd party cookies ......
Read more >
Firebase Unity SDK Release Notes
(Android, Linux) Fixed a concurrency bug where waiting for an event with a timeout ... Instead of waiting for all async operations to...
Read more >
SafetyNet reCAPTCHA API
When the reCAPTCHA API executes the onSuccess() method, the user has successfully completed the CAPTCHA challenge. However, this method only indicates that the ......
Read more >
Migrate from Google Identity Toolkit to Firebase ...
Anonymous sign-in can be used to create a unique user ID without requiring the user to go through any sign-in or sign-up process....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found