{"_id":"@capgo/capacitor-firebase-firestore","_rev":"5-c74b7f8c92b9987aecdafbd9c762dd14","name":"@capgo/capacitor-firebase-firestore","dist-tags":{"latest":"8.3.1"},"versions":{"7.4.0":{"name":"@capgo/capacitor-firebase-firestore","version":"7.4.0","keywords":["capacitor","plugin","native"],"author":{"name":"Capgo Team"},"license":"Apache-2.0","_id":"@capgo/capacitor-firebase-firestore@7.4.0","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"}],"homepage":"https://capgo.app/","bugs":{"url":"https://github.com/Cap-go/capacitor-firebase/issues"},"dist":{"shasum":"da6e453a10c6ba7214629b0f09eac9dfd1c1c59d","tarball":"https://registry.npmjs.org/@capgo/capacitor-firebase-firestore/-/capacitor-firebase-firestore-7.4.0.tgz","fileCount":88,"integrity":"sha512-LWQBf0St79tZwneRn2iS5QDkiZGw6/gnBg3yIPIoI47IIa4J/pv4c9FN88efCF5ukNSS7WXFKeUVL36nUPF4oA==","signatures":[{"sig":"MEUCIQCXnxz1404ZkHA8UWIuL/UYW9vLEm2cLm+RC2T6CHnGmwIgQyZ6GqdfTB9OrotDHZ00yh4eneOoHKL0sc+ZfobjdW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435283},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"97786da96a720a520f80ac1031a0f12063f135d7","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api FirebaseFirestorePlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorFirebaseFirestore -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"riderx","email":"martin.donadieu@hey.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-firebase.git","type":"git"},"_npmVersion":"11.6.2","description":"Capacitor plugin for Firebase Cloud Firestore.","directories":{},"_nodeVersion":"24.11.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.0.1","rollup":"4.30.1","firebase":"12.6.0","prettier":"3.4.2","swiftlint":"2.0.0","typescript":"4.1.5","@capacitor/cli":"7.0.0","@capacitor/ios":"7.0.0","@capacitor/core":"7.0.0","@capacitor/docgen":"0.3.0","@capacitor/android":"7.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"2.0.0"},"peerDependencies":{"firebase":"12.6.0","@capacitor/core":">=7.0.0"},"peerDependenciesMeta":{"firebase":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/capacitor-firebase-firestore_7.4.0_1763998896409_0.22732579226633032","host":"s3://npm-registry-packages-npm-production"}},"7.4.1":{"name":"@capgo/capacitor-firebase-firestore","version":"7.4.1","keywords":["capacitor","plugin","native"],"author":{"name":"Capgo Team"},"license":"Apache-2.0","_id":"@capgo/capacitor-firebase-firestore@7.4.1","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"}],"homepage":"https://capgo.app/","bugs":{"url":"https://github.com/Cap-go/capacitor-firebase/issues"},"dist":{"shasum":"8323af8c29809cbe67ffa58da0172b1426359cec","tarball":"https://registry.npmjs.org/@capgo/capacitor-firebase-firestore/-/capacitor-firebase-firestore-7.4.1.tgz","fileCount":88,"integrity":"sha512-FHbas+TMyyMhc6pNENv4BlOkS73sDyQOgNNNAmko22wgy9SDT5P+UF/hbRXaKKb7SC5/8lCBHuteYFQGnxfYiQ==","signatures":[{"sig":"MEUCICrYp1iysZEAWfiaRWMxhAlhpwSnGmKDewxM/ztrTKquAiEAhVgZ7AwrZpJmGQzswx9qpLQYPWpjqxTTX9XWXUPtUGs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":433741},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"c965f5a7def32792245434af874be9775557c34d","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api FirebaseFirestorePlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorFirebaseFirestore -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"riderx","email":"martin.donadieu@hey.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-firebase.git","type":"git"},"_npmVersion":"11.6.2","description":"Capacitor plugin for Firebase Cloud Firestore.","directories":{},"_nodeVersion":"24.11.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.0.1","rollup":"4.30.1","firebase":"12.6.0","prettier":"3.4.2","swiftlint":"2.0.0","typescript":"4.1.5","@capacitor/cli":"7.0.0","@capacitor/ios":"7.0.0","@capacitor/core":"7.0.0","@capacitor/docgen":"0.3.0","@capacitor/android":"7.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"2.0.0"},"peerDependencies":{"firebase":"12.6.0","@capacitor/core":">=7.0.0"},"peerDependenciesMeta":{"firebase":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/capacitor-firebase-firestore_7.4.1_1763999723370_0.10674439239004796","host":"s3://npm-registry-packages-npm-production"}},"7.4.2":{"name":"@capgo/capacitor-firebase-firestore","version":"7.4.2","keywords":["capacitor","plugin","native"],"author":{"name":"Capgo Team"},"license":"MPL-2.0","_id":"@capgo/capacitor-firebase-firestore@7.4.2","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"}],"homepage":"https://capgo.app/","bugs":{"url":"https://github.com/Cap-go/capacitor-firebase/issues"},"dist":{"shasum":"9a6c055943e11c267c2d48d0235b979eb578182e","tarball":"https://registry.npmjs.org/@capgo/capacitor-firebase-firestore/-/capacitor-firebase-firestore-7.4.2.tgz","fileCount":89,"integrity":"sha512-/y5e/vD1OAtutZ17NUJLiPNHR2nqUkSyNbNcFbEIvYHr43T5iEdGV3+ydpz3sGqJZU7t7Q4QNwDNItkZCeczUQ==","signatures":[{"sig":"MEYCIQCm4nDKQRMB3A6vcelmGeqpjcVfhcdBd1o9EjwaO7q92gIhAPeaefj//YS2QBc6weS2+tRdIEG8d4pKjr4gwBawdelG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450463},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"325442c77ca9e7b07ab0cb9abe1637a498043e0f","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api FirebaseFirestorePlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorFirebaseFirestore -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"riderx","email":"martin.donadieu@hey.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-firebase.git","type":"git"},"_npmVersion":"11.6.2","description":"Capacitor plugin for Firebase Cloud Firestore.","directories":{},"_nodeVersion":"24.11.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.0.1","rollup":"4.30.1","firebase":"12.6.0","prettier":"3.4.2","swiftlint":"2.0.0","typescript":"4.1.5","@capacitor/cli":"7.0.0","@capacitor/ios":"7.0.0","@capacitor/core":"7.0.0","@capacitor/docgen":"0.3.0","@capacitor/android":"7.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"2.0.0"},"peerDependencies":{"firebase":"12.6.0","@capacitor/core":">=7.0.0"},"peerDependenciesMeta":{"firebase":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/capacitor-firebase-firestore_7.4.2_1764858696069_0.20872009868308306","host":"s3://npm-registry-packages-npm-production"}},"8.3.1":{"_id":"@capgo/capacitor-firebase-firestore@8.3.1","bugs":{"url":"https://github.com/Cap-go/capacitor-firebase/issues"},"dist":{"shasum":"3ba4d6a7c67fc4905539803655e2b07056016f90","tarball":"https://registry.npmjs.org/@capgo/capacitor-firebase-firestore/-/capacitor-firebase-firestore-8.3.1.tgz","integrity":"sha512-ShPR5qYoF6rNySxeNCQfyL78VkDHqAKIaoDdXYlKuGnT28VgWUerNtWygaK3YOzIqwohD/akHeiwBwjNnDIp8A==","fileCount":115,"unpackedSize":613829,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capgo%2fcapacitor-firebase-firestore@8.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD3lFMXG67iESeALyGRCxNcNNISRrP84xh7wqe9c6z6oQIgaKMk3rMMUIJaTOAG5zfHunOwnvuAyJLe3ALvZ+c6TP0="}]},"main":"dist/plugin.cjs.js","name":"@capgo/capacitor-firebase-firestore","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Capgo Team"},"module":"dist/esm/index.js","gitHead":"a45a6f384755d20972c12acbe96d61c9614fdc1f","license":"MPL-2.0","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api FirebaseFirestorePlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"version":"8.3.1","_npmUser":{"name":"torichancapgo","email":"tori@capgo.app","approver":{"name":"torichancapgo","email":"tori@capgo.app"}},"homepage":"https://capgo.app/","keywords":["capacitor","plugin","native"],"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/Cap-go/capacitor-firebase.git","type":"git"},"_npmVersion":"11.19.1","description":"Capacitor plugin for Firebase Cloud Firestore.","directories":{},"maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"},{"name":"torichancapgo","email":"tori@capgo.app"}],"_nodeVersion":"24.20.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","firebase":"12.6.0","prettier":"3.4.2","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"firebase":"^12.6.0","@capacitor/core":">=8.0.0"},"peerDependenciesMeta":{"firebase":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-firebase-firestore_8.3.1_1789405690163_0.1906966720553811"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-24T15:41:36.286Z","modified":"2026-09-14T17:08:10.797Z","7.4.0":"2025-11-24T15:41:36.604Z","7.4.1":"2025-11-24T15:55:23.583Z","7.4.2":"2025-12-04T14:31:36.200Z","8.3.1":"2026-09-14T17:08:10.262Z"},"bugs":{"url":"https://github.com/Cap-go/capacitor-firebase/issues"},"author":{"name":"Capgo Team"},"license":"MPL-2.0","homepage":"https://capgo.app/","keywords":["capacitor","plugin","native"],"repository":{"url":"git+https://github.com/Cap-go/capacitor-firebase.git","type":"git"},"description":"Capacitor plugin for Firebase Cloud Firestore.","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"},{"name":"torichancapgo","email":"tori@capgo.app"}],"readme":"# @capgo/capacitor-firebase-firestore\n<a href=\"https://capgo.app/\"><img src=\"https://capgo.app/readme-banner.svg?repo=Cap-go/capacitor-firebase\" alt=\"Capgo - Instant updates for Capacitor\" /></a>\n\n<div align=\"center\">\n  <h2><a href=\"https://capgo.app/?ref=plugin\"> ➡️ Get Instant updates for your App with Capgo</a></h2>\n  <h2><a href=\"https://capgo.app/consulting/?ref=plugin\"> Missing a feature? We'll build the plugin for you 💪</a></h2>\n</div>\n\nUnofficial Capacitor plugin for [Firebase Cloud Firestore](https://firebase.google.com/docs/firestore/).[^1]\n\n## Guides\n\n- [Announcing the Capacitor Firebase Cloud Firestore Plugin](https://capgo.app/blog/announcing-the-capacitor-firebase-cloud-firestore-plugin/)\n\n## Compatibility\n\n| Plugin Version | Capacitor Version | Status         |\n| -------------- | ----------------- | -------------- |\n| 8.x.x          | >=8.x.x           | Active support |\n| 7.x.x          | 7.x.x             | Deprecated     |\n| 6.x.x          | 6.x.x             | Deprecated     |\n\n## Installation\n\nYou can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:\n\n```bash\nnpx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```text\nUse the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-firebase-firestore` plugin in my project.\n```\n\nIf you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:\n\n```bash\nnpm install @capgo/capacitor-firebase-firestore\nnpx cap sync\n```\n\nAdd Firebase to your project if you haven't already ([Android](https://github.com/cap-go/capacitor-firebase/blob/main/docs/firebase-setup.md#android) / [iOS](https://github.com/cap-go/capacitor-firebase/blob/main/docs/firebase-setup.md#ios) / [Web](https://github.com/cap-go/capacitor-firebase/blob/main/docs/firebase-setup.md#web)).\n\n### Android\n\n#### Variables\n\nIf needed, you can define the following project variable in your app’s `variables.gradle` file to change the default version of the dependency:\n\n- `$firebaseFirestoreVersion` version of `com.google.firebase:firebase-firestore` (default: `26.0.2`)\n\nThis can be useful if you encounter dependency conflicts with other plugins in your project.\n\n## Configuration\n\nNo configuration required for this plugin.\n\n## Demo\n\nA working example can be found here: [robingenz/capacitor-firebase-plugin-demo](https://github.com/robingenz/capacitor-firebase-plugin-demo)\n\n## Starter templates\n\nThe following starter templates are available:\n\n- [Ionstarter Angular Firebase](https://ionstarter.dev/)\n\n## Usage\n\n```typescript\nimport { FirebaseFirestore } from '@capgo/capacitor-firebase-firestore';\n\nconst addDocument = async () => {\n  await FirebaseFirestore.addDocument({\n    reference: 'users',\n    data: { \n      first: 'Alan', \n      last: 'Turing', \n      born: 1912 \n    },\n  });\n};\n\nconst setDocument = async () => {\n  await FirebaseFirestore.setDocument({\n    reference: 'users/Aorq09lkt1ynbR7xhTUx',\n    data: { \n      first: 'Alan', \n      last: 'Turing', \n      born: 1912 \n    },\n    merge: true,\n  });\n};\n\nconst getDocument = async () => {\n  const { snapshot } = await FirebaseFirestore.getDocument({\n    reference: 'users/Aorq09lkt1ynbR7xhTUx',\n  });\n  return snapshot;\n};\n\nconst updateDocument = async () => {\n  await FirebaseFirestore.updateDocument({\n    reference: 'users/Aorq09lkt1ynbR7xhTUx',\n    data: { \n      first: 'Alan', \n      last: 'Turing', \n      born: 1912 \n    },\n  });\n};\n\nconst deleteDocument = async () => {\n  await FirebaseFirestore.deleteDocument({\n    reference: 'users/Aorq09lkt1ynbR7xhTUx',\n  });\n};\n\nconst writeBatch = async () => {\n  await FirebaseFirestore.writeBatch({\n    operations: [\n      {\n        type: 'set',\n        reference: 'users/Aorq09lkt1ynbR7xhTUx',\n        data: { \n          first: 'Alan', \n          last: 'Turing', \n          born: 1912 \n        },\n        options: { merge: true },\n      },\n      {\n        type: 'update',\n        reference: 'users/Aorq09lkt1ynbR7xhTUx',\n        data: { \n          first: 'Alan', \n          last: 'Turing', \n          born: 1912 \n        },\n      },\n      {\n        type: 'delete',\n        reference: 'users/Aorq09lkt1ynbR7xhTUx',\n      },\n    ],\n  });\n};\n\nconst getCollection = async () => {\n  const { snapshots } = await FirebaseFirestore.getCollection({\n    reference: 'users',\n    compositeFilter: {\n      type: 'and',\n      queryConstraints: [\n        {\n          type: 'where',\n          fieldPath: 'born',\n          opStr: '==',\n          value: 1912,\n        },\n      ],\n    },\n    queryConstraints: [\n      {\n        type: 'orderBy',\n        fieldPath: 'born',\n        directionStr: 'desc',\n      },\n      {\n        type: 'limit',\n        limit: 10,\n      },\n    ],\n  });\n  return snapshots;\n};\n\nconst getCollectionGroup = async () => {\n  const { snapshots } = await FirebaseFirestore.getCollectionGroup({\n    reference: 'users',\n    compositeFilter: {\n      type: 'and',\n      queryConstraints: [\n        {\n          type: 'where',\n          fieldPath: 'born',\n          opStr: '==',\n          value: 1912,\n        },\n      ],\n    },\n    queryConstraints: [\n      {\n        type: 'orderBy',\n        fieldPath: 'born',\n        directionStr: 'desc',\n      },\n      {\n        type: 'limit',\n        limit: 10,\n      },\n    ],\n  });\n  return snapshots;\n};\n\nconst enableNetwork = async () => {\n  await FirebaseFirestore.enableNetwork();\n};\n\nconst disableNetwork = async () => {\n  await FirebaseFirestore.disableNetwork();\n};\n\nconst useEmulator = async () => {\n  await FirebaseFirestore.useEmulator({\n    host: '10.0.2.2',\n    port: 9001,\n  });\n};\n\nconst addDocumentSnapshotListener = async () => {\n  const callbackId = await FirebaseFirestore.addDocumentSnapshotListener(\n    {\n      reference: 'users/Aorq09lkt1ynbR7xhTUx',\n    },\n    (event, error) => {\n      if (error) {\n        console.error(error);\n      } else {\n        console.log(event);\n      }\n    }\n  );\n  return callbackId;\n};\n\nconst addCollectionSnapshotListener = async () => {\n  const callbackId = await FirebaseFirestore.addCollectionSnapshotListener(\n    {\n      reference: 'users',\n      compositeFilter: {\n        type: 'and',\n        queryConstraints: [\n          {\n            type: 'where',\n            fieldPath: 'born',\n            opStr: '==',\n            value: 1912,\n          },\n        ],\n      },\n      queryConstraints: [\n        {\n          type: 'orderBy',\n          fieldPath: 'born',\n          directionStr: 'desc',\n        },\n        {\n          type: 'limit',\n          limit: 10,\n        },\n      ],\n    },\n    (event, error) => {\n      if (error) {\n        console.error(error);\n      } else {\n        console.log(event);\n      }\n    }\n  );\n  return callbackId;\n};\n\nconst addCollectionGroupSnapshotListener = async () => {\n  const callbackId = await FirebaseFirestore.addCollectionGroupSnapshotListener(\n    {\n      reference: 'users',\n      compositeFilter: {\n        type: 'and',\n        queryConstraints: [\n          {\n            type: 'where',\n            fieldPath: 'born',\n            opStr: '==',\n            value: 1912,\n          },\n        ],\n      },\n      queryConstraints: [\n        {\n          type: 'orderBy',\n          fieldPath: 'born',\n          directionStr: 'desc',\n        },\n        {\n          type: 'limit',\n          limit: 10,\n        },\n      ],\n    },\n    (event, error) => {\n      if (error) {\n        console.error(error);\n      } else {\n        console.log(event);\n      }\n    }\n  );\n  return callbackId;\n};\n\nconst removeSnapshotListener = async (callbackId: string) => {\n  await FirebaseFirestore.removeSnapshotListener({\n    callbackId,\n  });\n};\n\nconst removeAllListeners = async () => {\n  await FirebaseFirestore.removeAllListeners();\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`addDocument(...)`](#adddocument)\n* [`addCollectionGroupSnapshotListener(...)`](#addcollectiongroupsnapshotlistener)\n* [`addCollectionSnapshotListener(...)`](#addcollectionsnapshotlistener)\n* [`addDocumentSnapshotListener(...)`](#adddocumentsnapshotlistener)\n* [`clearPersistence()`](#clearpersistence)\n* [`deleteDocument(...)`](#deletedocument)\n* [`disableNetwork()`](#disablenetwork)\n* [`disablePersistence()`](#disablepersistence)\n* [`enablePersistence(...)`](#enablepersistence)\n* [`enableNetwork()`](#enablenetwork)\n* [`getCollection(...)`](#getcollection)\n* [`getCollectionGroup(...)`](#getcollectiongroup)\n* [`getCountFromServer(...)`](#getcountfromserver)\n* [`getDocument(...)`](#getdocument)\n* [`removeAllListeners()`](#removealllisteners)\n* [`removeSnapshotListener(...)`](#removesnapshotlistener)\n* [`setDocument(...)`](#setdocument)\n* [`updateDocument(...)`](#updatedocument)\n* [`useEmulator(...)`](#useemulator)\n* [`writeBatch(...)`](#writebatch)\n* [Interfaces](#interfaces)\n* [Type Aliases](#type-aliases)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### addDocument(...)\n\n```typescript\naddDocument(options: AddDocumentOptions) => Promise<AddDocumentResult>\n```\n\nAdds a new document to a collection with the given data.\n\n| Param         | Type                                                              |\n| ------------- | ----------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#adddocumentoptions\">AddDocumentOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#adddocumentresult\">AddDocumentResult</a>&gt;</code>\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### addCollectionGroupSnapshotListener(...)\n\n```typescript\naddCollectionGroupSnapshotListener<T extends DocumentData = DocumentData>(options: AddCollectionGroupSnapshotListenerOptions, callback: AddCollectionGroupSnapshotListenerCallback<T>) => Promise<CallbackId>\n```\n\nAdds a listener for collection group snapshot events.\n\n| Param          | Type                                                                                                                       |\n| -------------- | -------------------------------------------------------------------------------------------------------------------------- |\n| **`options`**  | <code><a href=\"#addcollectiongroupsnapshotlisteneroptions\">AddCollectionGroupSnapshotListenerOptions</a></code>            |\n| **`callback`** | <code><a href=\"#addcollectiongroupsnapshotlistenercallback\">AddCollectionGroupSnapshotListenerCallback</a>&lt;T&gt;</code> |\n\n**Returns:** <code>Promise&lt;string&gt;</code>\n\n**Since:** 6.1.0\n\n--------------------\n\n\n### addCollectionSnapshotListener(...)\n\n```typescript\naddCollectionSnapshotListener<T extends DocumentData = DocumentData>(options: AddCollectionSnapshotListenerOptions, callback: AddCollectionSnapshotListenerCallback<T>) => Promise<CallbackId>\n```\n\nAdds a listener for collection snapshot events.\n\n| Param          | Type                                                                                                             |\n| -------------- | ---------------------------------------------------------------------------------------------------------------- |\n| **`options`**  | <code><a href=\"#addcollectionsnapshotlisteneroptions\">AddCollectionSnapshotListenerOptions</a></code>            |\n| **`callback`** | <code><a href=\"#addcollectionsnapshotlistenercallback\">AddCollectionSnapshotListenerCallback</a>&lt;T&gt;</code> |\n\n**Returns:** <code>Promise&lt;string&gt;</code>\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### addDocumentSnapshotListener(...)\n\n```typescript\naddDocumentSnapshotListener<T extends DocumentData = DocumentData>(options: AddDocumentSnapshotListenerOptions, callback: AddDocumentSnapshotListenerCallback<T>) => Promise<CallbackId>\n```\n\nAdds a listener for document snapshot events.\n\n| Param          | Type                                                                                                         |\n| -------------- | ------------------------------------------------------------------------------------------------------------ |\n| **`options`**  | <code><a href=\"#adddocumentsnapshotlisteneroptions\">AddDocumentSnapshotListenerOptions</a></code>            |\n| **`callback`** | <code><a href=\"#adddocumentsnapshotlistenercallback\">AddDocumentSnapshotListenerCallback</a>&lt;T&gt;</code> |\n\n**Returns:** <code>Promise&lt;string&gt;</code>\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### clearPersistence()\n\n```typescript\nclearPersistence() => Promise<void>\n```\n\nClears the persistent storage. This includes pending writes and cached documents.\n\n**Attention**: Must be called after the app is shutdown or when the app is first initialized.\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### deleteDocument(...)\n\n```typescript\ndeleteDocument(options: DeleteDocumentOptions) => Promise<void>\n```\n\nDeletes the document referred to by the specified reference.\n\n| Param         | Type                                                                    |\n| ------------- | ----------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#deletedocumentoptions\">DeleteDocumentOptions</a></code> |\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### disableNetwork()\n\n```typescript\ndisableNetwork() => Promise<void>\n```\n\nDisables use of the network.\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### disablePersistence()\n\n```typescript\ndisablePersistence() => Promise<void>\n```\n\nDisables offline persistence.\n\n**Attention**: Must be called before any other Firestore method.\n\n**Since:** 8.2.0\n\n--------------------\n\n\n### enablePersistence(...)\n\n```typescript\nenablePersistence(options?: EnablePersistenceOptions | undefined) => Promise<void>\n```\n\nEnables offline persistence.\n\n**Attention**: Must be called before any other Firestore method.\n\n| Param         | Type                                                                          |\n| ------------- | ----------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#enablepersistenceoptions\">EnablePersistenceOptions</a></code> |\n\n**Since:** 8.2.0\n\n--------------------\n\n\n### enableNetwork()\n\n```typescript\nenableNetwork() => Promise<void>\n```\n\nRe-enables use of the network.\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### getCollection(...)\n\n```typescript\ngetCollection<T extends DocumentData = DocumentData>(options: GetCollectionOptions) => Promise<GetCollectionResult<T>>\n```\n\nReads the collection referenced by the specified reference.\n\n| Param         | Type                                                                  |\n| ------------- | --------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#getcollectionoptions\">GetCollectionOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#getcollectionresult\">GetCollectionResult</a>&lt;T&gt;&gt;</code>\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### getCollectionGroup(...)\n\n```typescript\ngetCollectionGroup<T extends DocumentData = DocumentData>(options: GetCollectionGroupOptions) => Promise<GetCollectionGroupResult<T>>\n```\n\nReads the collection group referenced by the specified reference.\n\n| Param         | Type                                                                            |\n| ------------- | ------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#getcollectiongroupoptions\">GetCollectionGroupOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#getcollectiongroupresult\">GetCollectionGroupResult</a>&lt;T&gt;&gt;</code>\n\n--------------------\n\n\n### getCountFromServer(...)\n\n```typescript\ngetCountFromServer(options: GetCountFromServerOptions) => Promise<GetCountFromServerResult>\n```\n\nFetches the number of documents in a collection.\n\n| Param         | Type                                                                            |\n| ------------- | ------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#getcountfromserveroptions\">GetCountFromServerOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#getcountfromserverresult\">GetCountFromServerResult</a>&gt;</code>\n\n**Since:** 6.4.0\n\n--------------------\n\n\n### getDocument(...)\n\n```typescript\ngetDocument<T extends DocumentData = DocumentData>(options: GetDocumentOptions) => Promise<GetDocumentResult<T>>\n```\n\nReads the document referred to by the specified reference.\n\n| Param         | Type                                                              |\n| ------------- | ----------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#getdocumentoptions\">GetDocumentOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#getdocumentresult\">GetDocumentResult</a>&lt;T&gt;&gt;</code>\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() => Promise<void>\n```\n\nRemove all listeners for this plugin.\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### removeSnapshotListener(...)\n\n```typescript\nremoveSnapshotListener(options: RemoveSnapshotListenerOptions) => Promise<void>\n```\n\nRemove a listener for document or collection snapshot events.\n\n| Param         | Type                                                                                    |\n| ------------- | --------------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#removesnapshotlisteneroptions\">RemoveSnapshotListenerOptions</a></code> |\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### setDocument(...)\n\n```typescript\nsetDocument(options: SetDocumentOptions) => Promise<void>\n```\n\nWrites to the document referred to by the specified reference.\nIf the document does not yet exist, it will be created.\n\n| Param         | Type                                                              |\n| ------------- | ----------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#setdocumentoptions\">SetDocumentOptions</a></code> |\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### updateDocument(...)\n\n```typescript\nupdateDocument(options: UpdateDocumentOptions) => Promise<void>\n```\n\nUpdates fields in the document referred to by the specified reference.\n\n| Param         | Type                                                                    |\n| ------------- | ----------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#updatedocumentoptions\">UpdateDocumentOptions</a></code> |\n\n**Since:** 5.2.0\n\n--------------------\n\n\n### useEmulator(...)\n\n```typescript\nuseEmulator(options: UseEmulatorOptions) => Promise<void>\n```\n\nInstrument your app to talk to the Firestore emulator.\n\n| Param         | Type                                                              |\n| ------------- | ----------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#useemulatoroptions\">UseEmulatorOptions</a></code> |\n\n**Since:** 6.1.0\n\n--------------------\n\n\n### writeBatch(...)\n\n```typescript\nwriteBatch(options: WriteBatchOptions) => Promise<void>\n```\n\nExecute multiple write operations as a single batch.\n\n| Param         | Type                                                            |\n| ------------- | --------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#writebatchoptions\">WriteBatchOptions</a></code> |\n\n**Since:** 6.1.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### AddDocumentResult\n\n| Prop            | Type                           | Description                                | Since |\n| --------------- | ------------------------------ | ------------------------------------------ | ----- |\n| **`reference`** | <code>DocumentReference</code> | The reference of the newly added document. | 5.2.0 |\n\n\n#### AddDocumentOptions\n\n| Prop            | Type                                                  | Description                                                                         | Since |\n| --------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------- | ----- |\n| **`reference`** | <code>string</code>                                   | The reference as a string, with path components separated by a forward slash (`/`). | 5.2.0 |\n| **`data`**      | <code><a href=\"#documentdata\">DocumentData</a></code> | An object containing the data for the new document.                                 | 5.2.0 |\n\n\n#### DocumentData\n\n\n#### AddCollectionGroupSnapshotListenerOptions\n\n| Prop                   | Type                                                                                      | Description                                                                                         | Since |\n| ---------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ----- |\n| **`reference`**        | <code>string</code>                                                                       | The reference as a string, with path components separated by a forward slash (`/`).                 | 6.1.0 |\n| **`compositeFilter`**  | <code><a href=\"#querycompositefilterconstraint\">QueryCompositeFilterConstraint</a></code> | The filter to apply.                                                                                | 6.1.0 |\n| **`queryConstraints`** | <code>QueryNonFilterConstraint[]</code>                                                   | Narrow or order the set of documents to retrieve, but do not explicitly filter for document fields. | 6.1.0 |\n\n\n#### QueryCompositeFilterConstraint\n\n| Prop                   | Type                                 | Description                 | Since |\n| ---------------------- | ------------------------------------ | --------------------------- | ----- |\n| **`type`**             | <code>'and' \\| 'or'</code>           | The type of the constraint. | 5.2.0 |\n| **`queryConstraints`** | <code>QueryFilterConstraint[]</code> | The filters to apply.       | 5.2.0 |\n\n\n#### QueryFieldFilterConstraint\n\n| Prop            | Type                                                    | Description                    | Since |\n| --------------- | ------------------------------------------------------- | ------------------------------ | ----- |\n| **`type`**      | <code>'where'</code>                                    | The type of the constraint.    | 5.2.0 |\n| **`fieldPath`** | <code>string</code>                                     | The path to compare.           | 5.2.0 |\n| **`opStr`**     | <code><a href=\"#queryoperator\">QueryOperator</a></code> | The operation string to apply. | 5.2.0 |\n| **`value`**     | <code>any</code>                                        | The value for comparison.      | 5.2.0 |\n\n\n#### QueryOrderByConstraint\n\n| Prop               | Type                                                          | Description                 | Since |\n| ------------------ | ------------------------------------------------------------- | --------------------------- | ----- |\n| **`type`**         | <code>'orderBy'</code>                                        | The type of the constraint. | 5.2.0 |\n| **`fieldPath`**    | <code>string</code>                                           | The path to compare.        | 5.2.0 |\n| **`directionStr`** | <code><a href=\"#orderbydirection\">OrderByDirection</a></code> | The direction to sort by.   | 5.2.0 |\n\n\n#### QueryLimitConstraint\n\n| Prop        | Type                                  | Description                            | Since |\n| ----------- | ------------------------------------- | -------------------------------------- | ----- |\n| **`type`**  | <code>'limit' \\| 'limitToLast'</code> | The type of the constraint.            | 5.2.0 |\n| **`limit`** | <code>number</code>                   | The maximum number of items to return. | 5.2.0 |\n\n\n#### QueryStartAtConstraint\n\n| Prop            | Type                                   | Description                                                                                                                                                        | Since |\n| --------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- |\n| **`type`**      | <code>'startAt' \\| 'startAfter'</code> | The type of the constraint.                                                                                                                                        | 5.2.0 |\n| **`reference`** | <code>string</code>                    | The reference to start at or after as a string, with path components separated by a forward slash (`/`). **Attention**: This requires an additional document read. | 5.2.0 |\n\n\n#### QueryEndAtConstraint\n\n| Prop            | Type                                | Description                                                                                                                                                          | Since |\n| --------------- | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`type`**      | <code>'endAt' \\| 'endBefore'</code> | The type of the constraint.                                                                                                                                          | 5.2.0 |\n| **`reference`** | <code>string</code>                 | The reference as to end at or before as a string, with path components separated by a forward slash (`/`). **Attention**: This requires an additional document read. | 5.2.0 |\n\n\n#### GetCollectionGroupResult\n\n| Prop            | Type                                                                     | Description                      | Since |\n| --------------- | ------------------------------------------------------------------------ | -------------------------------- | ----- |\n| **`snapshots`** | <code><a href=\"#documentsnapshot\">DocumentSnapshot</a>&lt;T&gt;[]</code> | The documents in the collection. | 5.2.0 |\n\n\n#### DocumentSnapshot\n\n| Prop           | Type                                                          | Description                                                                                   | Since |\n| -------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ----- |\n| **`id`**       | <code>string</code>                                           | The document's identifier within its collection.                                              | 5.2.0 |\n| **`path`**     | <code>string</code>                                           | The path of the document.                                                                     | 5.2.0 |\n| **`data`**     | <code>T \\| null</code>                                        | An object containing the data for the document. Returns `null` if the document doesn't exist. | 5.2.0 |\n| **`metadata`** | <code><a href=\"#snapshotmetadata\">SnapshotMetadata</a></code> | Metadata about the snapshot, concerning its source and if it has local modifications.         | 6.2.0 |\n\n\n#### SnapshotMetadata\n\n| Prop                   | Type                 | Description                                               | Since |\n| ---------------------- | -------------------- | --------------------------------------------------------- | ----- |\n| **`fromCache`**        | <code>boolean</code> | True if the snapshot was created from cached data.        | 6.2.0 |\n| **`hasPendingWrites`** | <code>boolean</code> | True if the snapshot was created from pending write data. | 6.2.0 |\n\n\n#### AddCollectionSnapshotListenerOptions\n\n| Prop                   | Type                                                                                      | Description                                                                                         | Since |\n| ---------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ----- |\n| **`reference`**        | <code>string</code>                                                                       | The reference as a string, with path components separated by a forward slash (`/`).                 | 5.2.0 |\n| **`compositeFilter`**  | <code><a href=\"#querycompositefilterconstraint\">QueryCompositeFilterConstraint</a></code> | The filter to apply.                                                                                | 5.2.0 |\n| **`queryConstraints`** | <code>QueryNonFilterConstraint[]</code>                                                   | Narrow or order the set of documents to retrieve, but do not explicitly filter for document fields. | 5.2.0 |\n\n\n#### GetCollectionResult\n\n| Prop            | Type                                                                     | Description                      | Since |\n| --------------- | ------------------------------------------------------------------------ | -------------------------------- | ----- |\n| **`snapshots`** | <code><a href=\"#documentsnapshot\">DocumentSnapshot</a>&lt;T&gt;[]</code> | The documents in the collection. | 5.2.0 |\n\n\n#### AddDocumentSnapshotListenerOptions\n\n| Prop            | Type                | Description                                                                         | Since |\n| --------------- | ------------------- | ----------------------------------------------------------------------------------- | ----- |\n| **`reference`** | <code>string</code> | The reference as a string, with path components separated by a forward slash (`/`). | 5.2.0 |\n\n\n#### GetDocumentResult\n\n| Prop           | Type                                                                   | Description                    | Since |\n| -------------- | ---------------------------------------------------------------------- | ------------------------------ | ----- |\n| **`snapshot`** | <code><a href=\"#documentsnapshot\">DocumentSnapshot</a>&lt;T&gt;</code> | The current document contents. | 5.2.0 |\n\n\n#### DeleteDocumentOptions\n\n| Prop            | Type                | Description                                                                         | Since |\n| --------------- | ------------------- | ----------------------------------------------------------------------------------- | ----- |\n| **`reference`** | <code>string</code> | The reference as a string, with path components separated by a forward slash (`/`). | 5.2.0 |\n\n\n#### EnablePersistenceOptions\n\n| Prop                  | Type                 | Description                                                                      | Default                         | Since |\n| --------------------- | -------------------- | -------------------------------------------------------------------------------- | ------------------------------- | ----- |\n| **`cacheSizeBytes`**  | <code>number</code>  | The cache size in bytes.                                                         | <code>104857600 (100 MB)</code> | 8.2.0 |\n| **`synchronizeTabs`** | <code>boolean</code> | Whether to synchronize persistence across multiple tabs. Only available for Web. | <code>false</code>              | 8.2.0 |\n\n\n#### GetCollectionOptions\n\n| Prop                   | Type                                                                                      | Description                                                                                         | Since |\n| ---------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ----- |\n| **`reference`**        | <code>string</code>                                                                       | The reference as a string, with path components separated by a forward slash (`/`).                 | 5.2.0 |\n| **`compositeFilter`**  | <code><a href=\"#querycompositefilterconstraint\">QueryCompositeFilterConstraint</a></code> | The filter to apply.                                                                                | 5.2.0 |\n| **`queryConstraints`** | <code>QueryNonFilterConstraint[]</code>                                                   | Narrow or order the set of documents to retrieve, but do not explicitly filter for document fields. | 5.2.0 |\n\n\n#### GetCollectionGroupOptions\n\n| Prop                   | Type                                                                                      | Description                                                                                         | Since |\n| ---------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ----- |\n| **`reference`**        | <code>string</code>                                                                       | The reference as a string, with path components separated by a forward slash (`/`).                 | 5.2.0 |\n| **`compositeFilter`**  | <code><a href=\"#querycompositefilterconstraint\">QueryCompositeFilterConstraint</a></code> | The filter to apply.                                                                                | 5.2.0 |\n| **`queryConstraints`** | <code>QueryNonFilterConstraint[]</code>                                                   | Narrow or order the set of documents to retrieve, but do not explicitly filter for document fields. | 5.2.0 |\n\n\n#### GetCountFromServerResult\n\n| Prop        | Type                | Description                                | Since |\n| ----------- | ------------------- | ------------------------------------------ | ----- |\n| **`count`** | <code>number</code> | The number of documents in the collection. | 6.4.0 |\n\n\n#### GetCountFromServerOptions\n\n| Prop                   | Type                                                                                      | Description                                                                                      | Since |\n| ---------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ----- |\n| **`reference`**        | <code>string</code>                                                                       | The reference as a string, with path components separated by a forward slash (`/`).              | 6.4.0 |\n| **`compositeFilter`**  | <code><a href=\"#querycompositefilterconstraint\">QueryCompositeFilterConstraint</a></code> | The filter to apply.                                                                             | 8.3.0 |\n| **`queryConstraints`** | <code>QueryNonFilterConstraint[]</code>                                                   | Narrow or order the set of documents to count, but do not explicitly filter for document fields. | 8.3.0 |\n\n\n#### GetDocumentOptions\n\n| Prop            | Type                | Description                                                                         | Since |\n| --------------- | ------------------- | ----------------------------------------------------------------------------------- | ----- |\n| **`reference`** | <code>string</code> | The reference as a string, with path components separated by a forward slash (`/`). | 5.2.0 |\n\n\n#### RemoveSnapshotListenerOptions\n\n| Prop             | Type                                              | Since |\n| ---------------- | ------------------------------------------------- | ----- |\n| **`callbackId`** | <code><a href=\"#callbackid\">CallbackId</a></code> | 5.2.0 |\n\n\n#### SetDocumentOptions\n\n| Prop            | Type                                                  | Description                                                                         | Default            | Since |\n| --------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------ | ----- |\n| **`reference`** | <code>string</code>                                   | The reference as a string, with path components separated by a forward slash (`/`). |                    | 5.2.0 |\n| **`data`**      | <code><a href=\"#documentdata\">DocumentData</a></code> | An object containing the data for the new document.                                 |                    | 5.2.0 |\n| **`merge`**     | <code>boolean</code>                                  | Whether to merge the provided data with an existing document.                       | <code>false</code> | 5.2.0 |\n\n\n#### UpdateDocumentOptions\n\n| Prop            | Type                                                  | Description                                                                         | Since |\n| --------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------- | ----- |\n| **`reference`** | <code>string</code>                                   | The reference as a string, with path components separated by a forward slash (`/`). | 5.2.0 |\n| **`data`**      | <code><a href=\"#documentdata\">DocumentData</a></code> | An object containing the data for the new document.                                 | 5.2.0 |\n\n\n#### UseEmulatorOptions\n\n| Prop       | Type                | Description                                                                                                                                                                     | Default           | Since |\n| ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ----- |\n| **`host`** | <code>string</code> | The emulator host without any port or scheme. Note when using a Android Emulator device: 10.0.2.2 is the special IP address to connect to the 'localhost' of the host computer. |                   | 6.1.0 |\n| **`port`** | <code>number</code> | The emulator port.                                                                                                                                                              | <code>8080</code> | 6.1.0 |\n\n\n#### WriteBatchOptions\n\n| Prop             | Type                               | Description                             | Since |\n| ---------------- | ---------------------------------- | --------------------------------------- | ----- |\n| **`operations`** | <code>WriteBatchOperation[]</code> | The operations to execute in the batch. | 6.1.0 |\n\n\n#### WriteBatchOperation\n\n| Prop            | Type                                                  | Description                                                                         | Since |\n| --------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------- | ----- |\n| **`type`**      | <code>'set' \\| 'update' \\| 'delete'</code>            | The type of operation.                                                              | 6.1.0 |\n| **`reference`** | <code>string</code>                                   | The reference as a string, with path components separated by a forward slash (`/`). | 6.1.0 |\n| **`data`**      | <code><a href=\"#documentdata\">DocumentData</a></code> | An object containing the data for the new document.                                 | 6.1.0 |\n| **`options`**   | <code><a href=\"#setoptions\">SetOptions</a></code>     | An object to configure the set behavior.                                            | 7.3.0 |\n\n\n#### SetOptions\n\n| Prop        | Type                 | Description                                                                | Default            | Since |\n| ----------- | -------------------- | -------------------------------------------------------------------------- | ------------------ | ----- |\n| **`merge`** | <code>boolean</code> | Whether a merge should be performed or the document should be overwritten. | <code>false</code> | 7.3.0 |\n\n\n### Type Aliases\n\n\n#### QueryFilterConstraint\n\n<code><a href=\"#queryfieldfilterconstraint\">QueryFieldFilterConstraint</a> | <a href=\"#querycompositefilterconstraint\">QueryCompositeFilterConstraint</a></code>\n\n\n#### QueryOperator\n\n<code>'&lt;' | '&lt;=' | '==' | '&gt;=' | '&gt;' | '!=' | 'array-contains' | 'array-contains-any' | 'in' | 'not-in'</code>\n\n\n#### QueryNonFilterConstraint\n\n<code><a href=\"#queryorderbyconstraint\">QueryOrderByConstraint</a> | <a href=\"#querylimitconstraint\">QueryLimitConstraint</a> | <a href=\"#querystartatconstraint\">QueryStartAtConstraint</a> | <a href=\"#queryendatconstraint\">QueryEndAtConstraint</a></code>\n\n\n#### OrderByDirection\n\n<code>'desc' | 'asc'</code>\n\n\n#### AddCollectionGroupSnapshotListenerCallback\n\n<code>(event: <a href=\"#addcollectiongroupsnapshotlistenercallbackevent\">AddCollectionGroupSnapshotListenerCallbackEvent</a>&lt;T&gt; | null, error: any): void</code>\n\n\n#### AddCollectionGroupSnapshotListenerCallbackEvent\n\n<code><a href=\"#getcollectiongroupresult\">GetCollectionGroupResult</a>&lt;T&gt;</code>\n\n\n#### CallbackId\n\n<code>string</code>\n\n\n#### AddCollectionSnapshotListenerCallback\n\n<code>(event: <a href=\"#addcollectionsnapshotlistenercallbackevent\">AddCollectionSnapshotListenerCallbackEvent</a>&lt;T&gt; | null, error: any): void</code>\n\n\n#### AddCollectionSnapshotListenerCallbackEvent\n\n<code><a href=\"#getcollectionresult\">GetCollectionResult</a>&lt;T&gt;</code>\n\n\n#### AddDocumentSnapshotListenerCallback\n\n<code>(event: <a href=\"#adddocumentsnapshotlistenercallbackevent\">AddDocumentSnapshotListenerCallbackEvent</a>&lt;T&gt; | null, error: any): void</code>\n\n\n#### AddDocumentSnapshotListenerCallbackEvent\n\n<code><a href=\"#getdocumentresult\">GetDocumentResult</a>&lt;T&gt;</code>\n\n</docgen-api>\n\n## Limitations\n\nThis plugin currently has the following limitations:\n\n- The `Timestamp` data type is not yet supported (see https://github.com/cap-go/capacitor-firebase/issues/474). Use a `number` or a `string` instead.\n- The `FieldValue` data type is not yet supported (see https://github.com/cap-go/capacitor-firebase/issues/443).\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/cap-go/capacitor-firebase/blob/main/packages/firestore/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/cap-go/capacitor-firebase/blob/main/packages/firestore/LICENSE).\n\n[^1]: This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries.\n","readmeFilename":"README.md"}