From 7293289c342eda3365ec6017433321ca873d2732 Mon Sep 17 00:00:00 2001 From: milaGGL <107142260+milaGGL@users.noreply.github.com> Date: Tue, 7 Feb 2023 21:06:53 -0800 Subject: [PATCH] resolve comments --- packages/firestore/src/core/database_info.ts | 4 ---- packages/firestore/src/platform/base64.ts | 2 +- .../firestore/src/platform/browser/base64.ts | 2 +- packages/firestore/src/remote/watch_change.ts | 18 +++++++++++------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/firestore/src/core/database_info.ts b/packages/firestore/src/core/database_info.ts index ca8bdb888e7..306a9920ea9 100644 --- a/packages/firestore/src/core/database_info.ts +++ b/packages/firestore/src/core/database_info.ts @@ -77,10 +77,6 @@ export class DatabaseId { other.database === this.database ); } - - canonicalString(): string { - return `projects/${this.projectId}/databases/${this.database}`; - } } export function databaseIdFromApp( diff --git a/packages/firestore/src/platform/base64.ts b/packages/firestore/src/platform/base64.ts index 3fb735ef299..3efd0339e77 100644 --- a/packages/firestore/src/platform/base64.ts +++ b/packages/firestore/src/platform/base64.ts @@ -26,7 +26,7 @@ export function decodeBase64(encoded: string): string { const decoded = platform.decodeBase64(encoded); // A quick sanity check as node and rn will not throw error if input is an - // invalid base64 string, ie, "A===". + // invalid base64 string, e.g., "A===". const expectedEncodedLength = 4 * Math.ceil(decoded.length / 3); if (encoded.length !== expectedEncodedLength) { throw new Base64DecodeError('Invalid base64 string'); diff --git a/packages/firestore/src/platform/browser/base64.ts b/packages/firestore/src/platform/browser/base64.ts index c13108d5062..4cbbfe6ced9 100644 --- a/packages/firestore/src/platform/browser/base64.ts +++ b/packages/firestore/src/platform/browser/base64.ts @@ -23,7 +23,7 @@ export function decodeBase64(encoded: string): string { return atob(encoded); } catch (e) { if (e instanceof DOMException) { - throw new Base64DecodeError('Invalid base64 string'); + throw new Base64DecodeError('Invalid base64 string: ' + e); } else { throw e; } diff --git a/packages/firestore/src/remote/watch_change.ts b/packages/firestore/src/remote/watch_change.ts index 864924027cf..82ef17213dd 100644 --- a/packages/firestore/src/remote/watch_change.ts +++ b/packages/firestore/src/remote/watch_change.ts @@ -459,11 +459,15 @@ export class WatchChangeAggregator { normalizedBitmap = normalizeByteString(bitmap).toUint8Array(); } catch (err) { if (err instanceof Base64DecodeError) { - logWarn('Base64 string error: ', err); + logWarn( + 'Decoding the base64 bloom filter in existence filter failed (' + + err.message + + '); ignoring the bloom filter and falling back to full re-query.' + ); + return false; } else { - logWarn('Normalizing bloom filter bitmap failed: ', err); + throw err; } - return false; } let bloomFilter: BloomFilter; @@ -499,10 +503,10 @@ export class WatchChangeAggregator { let removalCount = 0; existingKeys.forEach(key => { - const documentPath = - this.metadataProvider.getDatabaseId().canonicalString() + - '/documents/' + - key.path.canonicalString(); + const databaseId = this.metadataProvider.getDatabaseId(); + const documentPath = `projects/${databaseId.projectId}/databases/${ + databaseId.database + }/documents/${key.path.canonicalString()}`; if (!bloomFilter.mightContain(documentPath)) { this.removeDocumentFromTarget(targetId, key, /*updatedDocument=*/ null);