Skip to content

Commit 4a53235

Browse files
Don't block on token if already recevied
1 parent cd668c3 commit 4a53235

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

packages/firestore/src/api/credentials.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ export class FirebaseCredentialsProvider implements CredentialsProvider {
232232
asyncQueue: AsyncQueue,
233233
changeListener: CredentialChangeListener
234234
): void {
235-
let lastTokenId = -1;
235+
let lastTokenId = this.tokenCounter;
236236

237237
// A change listener that prevents double-firing for the same token change.
238238
const guardedChangeListener: (user: User) => Promise<void> = user => {
@@ -290,9 +290,11 @@ export class FirebaseCredentialsProvider implements CredentialsProvider {
290290
}, 0);
291291

292292
asyncQueue.enqueueRetryable(async () => {
293-
// Call the change listener inline to block on the user change.
294-
await nextToken.promise;
295-
await guardedChangeListener(this.currentUser);
293+
// If we have not received a token, wait for the first one.
294+
if (this.tokenCounter === 0) {
295+
await nextToken.promise;
296+
await guardedChangeListener(this.currentUser);
297+
}
296298
});
297299
}
298300

packages/firestore/src/api/database.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ import { cast } from '../util/input_validation';
5858
import { Deferred } from '../util/promise';
5959

6060
import { LoadBundleTask } from './bundle';
61-
import {CredentialsProvider} from "./credentials";
61+
import { CredentialsProvider } from './credentials';
6262
import { PersistenceSettings, FirestoreSettings } from './settings';
6363
export {
6464
connectFirestoreEmulator,

0 commit comments

Comments
 (0)