From 8fafe12a1308b214d1d4080e0324d899cc8721e6 Mon Sep 17 00:00:00 2001 From: Morgan Chen Date: Fri, 10 Mar 2023 13:53:00 -0800 Subject: [PATCH 1/2] Add new web persistence --- firestore-next/test.firestore.js | 41 ++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/firestore-next/test.firestore.js b/firestore-next/test.firestore.js index 2469b736..3036a69f 100644 --- a/firestore-next/test.firestore.js +++ b/firestore-next/test.firestore.js @@ -73,22 +73,33 @@ describe("firestore", () => { const db = getFirestore(app); - // [START initialize_persistence] - const { enableIndexedDbPersistence } = require("firebase/firestore"); + const { + initializeFirestore, + memoryLocalCache, + persistentLocalCache, + persistentSingleTabManager, + persistentMultipleTabManager + } = require("firebase/firestore"); - enableIndexedDbPersistence(db) - .catch((err) => { - if (err.code == 'failed-precondition') { - // Multiple tabs open, persistence can only be enabled - // in one tab at a a time. - // ... - } else if (err.code == 'unimplemented') { - // The current browser does not support all of the - // features required to enable persistence - // ... - } - }); - // Subsequent queries will use persistence, if it was enabled successfully + // [START initialize_persistence] + // This is the default behavior if no persistence is specified. + initializeFirestore(app, {localCache: memoryLocalCache()}); + + // Use IndexedDb persistence. + initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{})}); + + // Use IndexedDb persistence. Defaults to single-tab persistence if no tab + // manager is specified. + initializeFirestore(app, + {localCache: + persistentLocalCache(/*settings*/{tabManager: persistentSingleTabManager()}) + }); // Same as enableIndexedDbPersistence + + // Use multi-tab IndexedDb persistence. + initializeFirestore(app, + {localCache: + persistentLocalCache(/*settings*/{tabManager: persistentMultipleTabManager()}) + }); // Same as enableMultiTabIndexedDbPersistence // [END initialize_persistence] }); From 29be135fa0da80ae82ac963129f1bfdd44a3c1c4 Mon Sep 17 00:00:00 2001 From: Morgan Chen Date: Tue, 21 Mar 2023 16:42:13 -0400 Subject: [PATCH 2/2] code review changes --- firestore-next/test.firestore.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/firestore-next/test.firestore.js b/firestore-next/test.firestore.js index 3036a69f..7811f4bd 100644 --- a/firestore-next/test.firestore.js +++ b/firestore-next/test.firestore.js @@ -82,24 +82,27 @@ describe("firestore", () => { } = require("firebase/firestore"); // [START initialize_persistence] + // Memory cache is the default if no config is specified. + initializeFirestore(app); + // This is the default behavior if no persistence is specified. initializeFirestore(app, {localCache: memoryLocalCache()}); - // Use IndexedDb persistence. + // Defaults to single-tab persistence if no tab manager is specified. initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{})}); - // Use IndexedDb persistence. Defaults to single-tab persistence if no tab - // manager is specified. + // Same as `initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{})})`, + // but more explicit about tab management. initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{tabManager: persistentSingleTabManager()}) - }); // Same as enableIndexedDbPersistence + }); // Use multi-tab IndexedDb persistence. initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{tabManager: persistentMultipleTabManager()}) - }); // Same as enableMultiTabIndexedDbPersistence + }); // [END initialize_persistence] });