Skip to content

Commit 2acb520

Browse files
Fixed potential race condition. closes #42
1 parent b955d5c commit 2acb520

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/FirebaseAuth.jsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export default class FirebaseAuth extends React.Component {
4040
this.firebaseAuth = props.firebaseAuth;
4141
this.className = props.className;
4242
this.uiCallback = props.uiCallback;
43+
this.unregisterAuthObserver = () => {};
4344
}
4445

4546
/**
@@ -55,10 +56,10 @@ export default class FirebaseAuth extends React.Component {
5556

5657
// Wait in case the firebase UI instance is being deleted.
5758
// This can happen if you unmount/remount the element quickly.
58-
firebaseUiDeletion.then(() => {
59+
return firebaseUiDeletion.then(() => {
5960
// Get or Create a firebaseUI instance.
6061
this.firebaseUiWidget = firebaseui.auth.AuthUI.getInstance()
61-
|| new firebaseui.auth.AuthUI(this.firebaseAuth);
62+
|| new firebaseui.auth.AuthUI(this.firebaseAuth);
6263
if (this.uiConfig.signInFlow === 'popup') {
6364
this.firebaseUiWidget.reset();
6465
}
@@ -86,8 +87,10 @@ export default class FirebaseAuth extends React.Component {
8687
* @inheritDoc
8788
*/
8889
componentWillUnmount() {
89-
this.unregisterAuthObserver();
90-
firebaseUiDeletion = this.firebaseUiWidget.delete();
90+
return firebaseUiDeletion.then(() => {
91+
this.unregisterAuthObserver();
92+
firebaseUiDeletion = this.firebaseUiWidget.delete();
93+
});
9194
}
9295

9396
/**

0 commit comments

Comments
 (0)