You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The minimal repro contains only the js SDK in the latest version. Tested in node@16 @18 and @20.
Describe the problem
Calling deleteApp for an app initialized with both firestore/auth hangs indefinitely. I encountered this while trying to connect both to the emulator, but the issue seems to happen without calling the connect{...}Emulator functions.
However, if some operation is called to the firestore instance, the app seems to be deleted as expected.
import{deleteApp,initializeApp}from'firebase/app';import{initializeAuth}from'firebase/auth';import{initializeFirestore,doc,getDoc}from'firebase/firestore';consttestApp=initializeApp({apiKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',projectId: 'some-project-id',});// Comment these two lines and the app will delete successfullyconsttestFirestore=initializeFirestore(testApp,{ignoreUndefinedProperties: true,});// Or comment these two lines and the app will delete successfullyconsttestAuth=initializeAuth(testApp);asyncfunctionreproIssue(){console.log('Deleting app...');// Uncomment this getDoc call and the deleteApp works with both firestore/auth// await getDoc(doc(testFirestore, 'users/alice'), { name: 'Alice' }).catch(// () => {// /** ignore errors */// }// );// This hangs indefinitely when both firestore and auth are initialized// This DOES NOT hand if only firestore or auth is initialized// Or if the getDoc call above is not commented.awaitdeleteApp(testApp);console.log('App deleted');// This is never reached}awaitreproIssue();
Run node repro.mjs
Deleting app... should be logged but App deleted not.
Comment either the testFirestore or testAuth initialization and run the file again..
Both Deleting app... and App deleted should be logged.
Now add an operation to firestore, i.e a getDoc, right before the deleteApp:
kaisermann
changed the title
deleteApp hangs indefinitely when auth and present are initializeddeleteApp hangs indefinitely when auth and firestore are initialized
Nov 27, 2023
Hi @tappin-kr, that PR only solves the problem by ignoring a promises that we should have waited for, and high likely will introduce other errors. The main problem actually exists in a node library, which explains why this only happens in Node.
Internally pinged another team to debug the issue.
Operating System
MacOS Sonoma 14.1.1
Browser Version
n/a
Firebase SDK Version
10.6.0
Firebase SDK Product:
Firestore
Describe your project's tooling
The minimal repro contains only the js SDK in the latest version. Tested in node@16 @18 and @20.
Describe the problem
Calling
deleteApp
for an app initialized with both firestore/auth hangs indefinitely. I encountered this while trying to connect both to the emulator, but the issue seems to happen without calling theconnect{...}Emulator
functions.However, if some operation is called to the
firestore
instance, the app seems to be deleted as expected.Steps and code to reproduce issue
Stackblitz repro
Create a
repro.mjs
file with:Run
node repro.mjs
Deleting app...
should be logged butApp deleted
not.Comment either the
testFirestore
ortestAuth
initialization and run the file again..Both

Deleting app...
andApp deleted
should be logged.Now add an operation to firestore, i.e a
getDoc
, right before thedeleteApp
:Run the file again with both auth/firestore initialized.
Both
Deleting app...
andApp deleted
should be logged.The text was updated successfully, but these errors were encountered: