firebase/firebase-cpp-sdk

[Question] Assert in auth.cc line 119 when trying to create Auth

Opened this issue · 2 comments

[REQUIRED] Please fill in the following fields:

  • Pre-built SDK from the website or open-source from this repo: Pre-build SDK
  • Firebase C++ SDK version: 12.1.0
  • Main Firebase Components in concern: Auth (Auth, Database, etc.)
  • Other Firebase Components in use: App,Firestore,Storage (Auth, Database, etc.)
  • Platform you are using the C++ SDK on: Windows (Mac, Windows, or Linux)
  • Platform you are targeting: iOS, Android (iOS, Android, and/or desktop)

[REQUIRED] Please describe the question here:

I was not able to reproduce the issue on test-app where auth example works properly on desktop.

Issue occurs only on Desktop when using c++ wrapper on Windows (Android and iOS works fine)

I'm following general FirebaseApp creation:

m_App = firebase::App::Create();

later on when i try to get Auth by calling this code: (from the same thread)

firebase::App* app = FirebaseApp::Get();
if (!app)
    return nullptr;

firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
if (!auth)
    return nullptr;

return auth;

I'm getting hard crash with assert from auth.cc line 119

If I try to create auth immediately after creating app i will get a proper object but then calling eg.:

firebase::Future<firebase::auth::AuthResult> result = auth->SignInAnonymously();

Result in exact same assert.

Can you please assist what may be the cause? Is there some kind of releasing object under the hood?

Image
Image
Image

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

My only clue that i found is that firebase app is creaded in one DLL and then auth is created in other DLL if I create app in the same DLL than auth everything works fine