diff --git a/firestore-next/test.firestore.js b/firestore-next/test.firestore.js index 214077fd..0300fb6f 100644 --- a/firestore-next/test.firestore.js +++ b/firestore-next/test.firestore.js @@ -74,22 +74,36 @@ describe("firestore", () => { const db = getFirestore(app); + const { + initializeFirestore, + memoryLocalCache, + persistentLocalCache, + persistentSingleTabManager, + persistentMultipleTabManager + } = require("firebase/firestore"); + // [START initialize_persistence] - const { enableIndexedDbPersistence } = require("firebase/firestore"); + // Memory cache is the default if no config is specified. + initializeFirestore(app, {}); - 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 - // ... - } + // This is the default behavior if no persistence is specified. + initializeFirestore(app, {localCache: memoryLocalCache()}); + + // Defaults to single-tab persistence if no tab manager is specified. + initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{})}); + + // Same as `initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{})})`, + // but more explicit about tab management. + initializeFirestore(app, + {localCache: + persistentLocalCache(/*settings*/{tabManager: persistentSingleTabManager({})}) + }); + + // Use multi-tab IndexedDb persistence. + initializeFirestore(app, + {localCache: + persistentLocalCache(/*settings*/{tabManager: persistentMultipleTabManager()}) }); - // Subsequent queries will use persistence, if it was enabled successfully // [END initialize_persistence] }); diff --git a/snippets/firestore-next/test-firestore/initialize_persistence.js b/snippets/firestore-next/test-firestore/initialize_persistence.js index acd5e988..c08d8825 100644 --- a/snippets/firestore-next/test-firestore/initialize_persistence.js +++ b/snippets/firestore-next/test-firestore/initialize_persistence.js @@ -5,19 +5,25 @@ // 'npm run snippets'. // [START initialize_persistence_modular] -import { enableIndexedDbPersistence } from "firebase/firestore"; +// Memory cache is the default if no config is specified. +initializeFirestore(app, {}); -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 - // ... - } +// This is the default behavior if no persistence is specified. +initializeFirestore(app, {localCache: memoryLocalCache()}); + +// Defaults to single-tab persistence if no tab manager is specified. +initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{})}); + +// Same as `initializeFirestore(app, {localCache: persistentLocalCache(/*settings*/{})})`, +// but more explicit about tab management. +initializeFirestore(app, + {localCache: + persistentLocalCache(/*settings*/{tabManager: persistentSingleTabManager({})}) +}); + +// Use multi-tab IndexedDb persistence. +initializeFirestore(app, + {localCache: + persistentLocalCache(/*settings*/{tabManager: persistentMultipleTabManager()}) }); -// Subsequent queries will use persistence, if it was enabled successfully // [END initialize_persistence_modular] \ No newline at end of file