@pyric/cli 0.1.0-alpha.21 → 0.1.0-alpha.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assurance/.generated/conformance-verdicts.d.ts +170 -0
- package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
- package/dist/assurance/.generated/conformance-verdicts.js +170 -0
- package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
- package/dist/conformance/.generated/can-i-use-browser.d.ts +1 -1
- package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -1
- package/dist/conformance/.generated/can-i-use-browser.js +1 -1
- package/dist/conformance/.generated/can-i-use-browser.js.map +1 -1
- package/dist/conformance/.generated/can-i-use.d.ts +1 -1
- package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
- package/dist/conformance/.generated/can-i-use.js +1 -1
- package/dist/conformance/.generated/can-i-use.js.map +1 -1
- package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -1
- package/dist/conformance/.generated/conformance-docs.js +1 -1
- package/dist/conformance/.generated/conformance-docs.js.map +1 -1
- package/dist/serve/site-ui/_astro/{app.DhAcImFD.js → app.CMmTxyhL.js} +1 -1
- package/dist/serve/site-ui/_astro/{app.BOr2kwae.js → app.DhALsVii.js} +12 -12
- package/dist/serve/site-ui/_astro/{seed.03a08f9t.js → seed.lywYbXZ0.js} +1 -1
- package/dist/serve/site-ui/auth/index.html +1 -1
- package/dist/serve/site-ui/docs/_rhythm/index.html +1 -1
- package/dist/serve/site-ui/docs/agent/set-up-your-agent/index.html +1 -1
- package/dist/serve/site-ui/docs/agent/watch-and-review/index.html +1 -1
- package/dist/serve/site-ui/docs/agent/work-with-an-agent/index.html +1 -1
- package/dist/serve/site-ui/docs/ai-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/api-reference/index.html +1 -1
- package/dist/serve/site-ui/docs/app-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/auth-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/build/ai-logic/index.html +1 -1
- package/dist/serve/site-ui/docs/build/authentication/index.html +2 -2
- package/dist/serve/site-ui/docs/build/authentication.md +1 -1
- package/dist/serve/site-ui/docs/build/cloud-firestore/index.html +4 -2
- package/dist/serve/site-ui/docs/build/cloud-firestore.md +4 -0
- package/dist/serve/site-ui/docs/build/cloud-messaging/index.html +1 -1
- package/dist/serve/site-ui/docs/build/cloud-storage/index.html +1 -1
- package/dist/serve/site-ui/docs/build/realtime-database/index.html +1 -1
- package/dist/serve/site-ui/docs/conformance-scores/index.html +9 -1
- package/dist/serve/site-ui/docs/conformance-scores.md +8 -0
- package/dist/serve/site-ui/docs/create-pyric-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/database-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/examples/chess/index.html +1 -1
- package/dist/serve/site-ui/docs/examples/index.html +1 -1
- package/dist/serve/site-ui/docs/firestore-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/firestore-flutter-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/firestore-kotlin-compat/index.html +319 -0
- package/dist/serve/site-ui/docs/firestore-kotlin-compat.md +344 -0
- package/dist/serve/site-ui/docs/firestore-swift-compat/index.html +490 -0
- package/dist/serve/site-ui/docs/firestore-swift-compat.md +517 -0
- package/dist/serve/site-ui/docs/functions-rtdb-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/backend-bundlers/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/flutter/index.html +98 -0
- package/dist/serve/site-ui/docs/get-started/flutter.md +105 -0
- package/dist/serve/site-ui/docs/get-started/how-the-swap-works/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/nextjs/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/start-building/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/vite/index.html +1 -1
- package/dist/serve/site-ui/docs/index.json +255 -0
- package/dist/serve/site-ui/docs/messaging-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/observe/resolve-runtime-status/index.html +4 -3
- package/dist/serve/site-ui/docs/observe/resolve-runtime-status.md +3 -1
- package/dist/serve/site-ui/docs/observe/see-whats-happening/index.html +1 -1
- package/dist/serve/site-ui/docs/observe/shape-your-data/index.html +1 -1
- package/dist/serve/site-ui/docs/observe/switch-and-impersonate-identities/index.html +110 -0
- package/dist/serve/site-ui/docs/observe/switch-and-impersonate-identities.md +134 -0
- package/dist/serve/site-ui/docs/overview/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-app-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-database-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-messaging-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-storage-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ai-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-analytics-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-app-check-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-app-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-assurance-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-bridge-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-bundler-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +3 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-browser-reference-api.md +2 -0
- package/dist/serve/site-ui/docs/pyric-cli-conformance-docs-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-reference-api/index.html +3 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-reference-api.md +2 -0
- package/dist/serve/site-ui/docs/pyric-cli-credentials-node-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-discover-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-next-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-register-app-bridge-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-register-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-remote-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-verify-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-vite-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-database-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-firestore-lite-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-functions-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-messaging-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-messaging-sw-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-performance-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-remote-config-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-rules-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-sandbox-database-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-sandbox-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-sandbox-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-storage-reference-api/index.html +2 -2
- package/dist/serve/site-ui/docs/pyric-storage-reference-api.md +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-agents-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-events-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-events-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-primitives-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rtdb-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rules-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-storage-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-traffic-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/reference/cli/index.html +1 -1
- package/dist/serve/site-ui/docs/rules-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/audit-your-rules/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/firestore-rules-limits/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/read-a-denial/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/rtdb-rules-in-typescript/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/rules-standard-library/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/secure-it-with-rules/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/simulate-and-lint/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/write-a-rules-test-suite/index.html +1 -1
- package/dist/serve/site-ui/docs/ship/ship-to-production/index.html +1 -1
- package/dist/serve/site-ui/docs/ship/test-in-node/index.html +1 -1
- package/dist/serve/site-ui/docs/storage-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/how-we-know-it-matches-firebase/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/rules-standard-library/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/versioning-and-compatibility/index.html +1 -1
- package/dist/serve/site-ui/docs/tutorial/index.html +1 -1
- package/dist/serve/site-ui/firestore/index.html +1 -1
- package/dist/serve/site-ui/llms.txt +4 -0
- package/dist/serve/site-ui/rtdb/index.html +1 -1
- package/dist/serve/site-ui/settings/index.html +1 -1
- package/dist/serve/site-ui/storage/index.html +1 -1
- package/dist/serve/site-ui/studio/index.html +1 -1
- package/dist/serve/site-ui/traffic/index.html +1 -1
- package/package.json +4 -4
- package/src/assurance/.generated/conformance-verdicts.ts +170 -0
- package/src/conformance/.generated/can-i-use-browser.ts +2 -2
- package/src/conformance/.generated/can-i-use.ts +2 -2
- package/src/conformance/.generated/conformance-docs.ts +1 -1
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"><title>Swift Cloud Firestore integration compatibility · Pyric Studio</title><link rel="icon" type="image/svg+xml" href="/__pyric/ui/pyric-logo.svg"><link rel="preconnect" href="https://use.typekit.net" crossorigin><link rel="stylesheet" href="https://use.typekit.net/jwb3ycu.css"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"><link rel="stylesheet" href="/__pyric/ui/_astro/index.UkCBr-_0.css">
|
|
2
|
+
<link rel="stylesheet" href="/__pyric/ui/_astro/_slug_.Da5VLhW1.css">
|
|
3
|
+
<style>:root{--rhythm-para: .875rem;--rhythm-group: 1.5rem;--rhythm-subsection: 2.25rem;--rhythm-section: 3.25rem;--rhythm-list: calc(var(--rhythm-para) * .75)}.prose>*,.prose blockquote>*,.prose li>*,.prose .compat-stat>*{margin-block:0}.prose>*+*{margin-block-start:var(--rhythm-group)}.prose>*+h2{margin-block-start:var(--rhythm-section)}.prose>*+h3,.prose>*+h4{margin-block-start:var(--rhythm-subsection)}.prose>h1+*,.prose>h2+*,.prose>h3+*,.prose>h4+*{margin-block-start:var(--rhythm-para)}.prose>p+p{margin-block-start:var(--rhythm-para)}.prose>p+ul,.prose>p+ol,.prose>p+blockquote{margin-block-start:var(--rhythm-para)}.prose li+li{margin-block-start:var(--rhythm-list)}.prose li>ul,.prose li>ol{margin-block-start:var(--rhythm-list)}.prose li>*+*,.prose blockquote>*+*{margin-block-start:var(--rhythm-para)}
|
|
4
|
+
html{scrollbar-gutter:stable}
|
|
5
|
+
</style></head> <body> <header class="studio__chrome"> <div class="studio__bar"> <div class="studio__chrome-inner"> <nav class="studio__nav" aria-label="Site"> <a class="studio__brand" href="/__pyric/ui/" aria-label="Pyric">pyric</a> <a class="studio__nav-tab" href="/__pyric/ui/"> Home </a><a class="studio__nav-tab" href="/__pyric/ui/docs" aria-current="page"> Docs </a><a class="studio__nav-tab" href="/__pyric/ui/studio"> Studio </a> </nav> </div> </div> </header> <div class="docs-shell" data-astro-cid-mw7aashj> <details class="docs-nav-drawer" data-astro-cid-mw7aashj> <summary data-astro-cid-mw7aashj>Navigate</summary> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <script type="module">let i=null;function d(t){return i||(i=fetch(t).then(e=>e.json())),i}function l(t,e){return t.title.toLowerCase().includes(e)||t.excerpt.toLowerCase().includes(e)?!0:t.headings.some(r=>r.text.toLowerCase().includes(e))}function u(t,e,r){if(e.innerHTML="",t.length===0){e.hidden=!1;{const n=document.createElement("li");n.className="docs-search-empty",n.textContent="No matches",e.appendChild(n)}return}e.hidden=!1;for(const n of t.slice(0,8)){const s=document.createElement("li"),c=document.createElement("a");c.href=n.path;const o=document.createElement("span");o.className="docs-search-result-title",o.textContent=n.title;const a=document.createElement("span");a.className="docs-search-result-meta",a.textContent=[n.group,n.section].filter(Boolean).join(" / "),c.append(o,a),s.appendChild(c),e.appendChild(s)}}document.querySelectorAll(".docs-search").forEach(t=>{const e=t.dataset.indexUrl,r=t.querySelector(".docs-search-input"),n=t.querySelector(".docs-search-results");r.addEventListener("input",async()=>{const s=r.value.trim().toLowerCase();if(!s){n.hidden=!0,n.innerHTML="";return}const{pages:c}=await d(e);r.value.trim().toLowerCase()===s&&u(c.filter(o=>l(o,s)),n)}),r.addEventListener("focus",()=>{d(e),n.childElementCount>0&&(n.hidden=!1)}),r.addEventListener("keydown",s=>{s.key==="Escape"&&(r.value="",n.hidden=!0,n.innerHTML="",r.blur())}),r.addEventListener("blur",()=>{window.setTimeout(()=>{n.hidden=!0},150)})});document.addEventListener("keydown",t=>{if(!(t.metaKey||t.ctrlKey)||t.key.toLowerCase()!=="k")return;const e=[...document.querySelectorAll(".docs-search-input")].find(r=>r.offsetParent!==null);e&&(t.preventDefault(),e.focus(),e.select())});</script> <details class="docs-nav-group"> <summary>Overview</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/overview/"> Overview </a> </li><li> <a href="/__pyric/ui/docs/tutorial/"> Tutorial </a> </li><li> <a href="/__pyric/ui/docs/examples/"> Examples </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/vite/"> Vite </a> </li><li> <a href="/__pyric/ui/docs/get-started/nextjs/"> Next.js </a> </li><li> <a href="/__pyric/ui/docs/get-started/backend-bundlers/"> Backend bundlers </a> </li><li> <a href="/__pyric/ui/docs/get-started/flutter/"> Flutter </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Secure & debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading"> Examples </h2> <ul> <li> <a href="/__pyric/ui/docs/examples/chess/"> Chess showcase </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Observe & shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic & rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/resolve-runtime-status/"> Runtime status </a> </li><li> <a href="/__pyric/ui/docs/observe/switch-and-impersonate-identities/"> Impersonate & tenants </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Ship & test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Trust</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/trust/versioning-and-compatibility/"> Versioning and the fb tag </a> </li><li> <a href="/__pyric/ui/docs/trust/rules-standard-library/"> Rules standard library reference </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" open> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Conformance scores </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li><li> <a href="/__pyric/ui/docs/firestore-flutter-compat/"> Firestore · Flutter </a> </li><li> <a href="/__pyric/ui/docs/firestore-kotlin-compat/"> Firestore · Kotlin </a> </li><li> <a href="/__pyric/ui/docs/firestore-swift-compat/" aria-current="page"> Firestore · Swift </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group"> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-lite-reference-api/"> pyric/firestore/lite </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-app-check-reference-api/"> pyric/app-check </a> </li><li> <a href="/__pyric/ui/docs/pyric-functions-reference-api/"> pyric/functions </a> </li><li> <a href="/__pyric/ui/docs/pyric-analytics-reference-api/"> pyric/analytics </a> </li><li> <a href="/__pyric/ui/docs/pyric-performance-reference-api/"> pyric/performance </a> </li><li> <a href="/__pyric/ui/docs/pyric-remote-config-reference-api/"> pyric/remote-config </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-reference-api/"> pyric-admin </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-messaging-reference-api/"> pyric-admin/messaging </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-docs-reference-api/"> @pyric/cli/conformance/docs </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-next-reference-api/"> @pyric/cli/next </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bundler-reference-api/"> @pyric/cli/bundler </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-app-bridge-reference-api/"> @pyric/cli/register/app-bridge </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/reference/cli/"> CLI </a> </li> </ul> </div> </div> </details> </nav> </details> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <details class="docs-nav-group" id="nav-group-overview"> <summary>Overview</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/overview/"> Overview </a> </li><li> <a href="/__pyric/ui/docs/tutorial/"> Tutorial </a> </li><li> <a href="/__pyric/ui/docs/examples/"> Examples </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-get-started"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/vite/"> Vite </a> </li><li> <a href="/__pyric/ui/docs/get-started/nextjs/"> Next.js </a> </li><li> <a href="/__pyric/ui/docs/get-started/backend-bundlers/"> Backend bundlers </a> </li><li> <a href="/__pyric/ui/docs/get-started/flutter/"> Flutter </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-build"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-secure-debug"> <summary>Secure & debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading" id="nav-section-secure-debug-examples"> Examples </h2> <ul> <li> <a href="/__pyric/ui/docs/examples/chess/"> Chess showcase </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-observe-shape"> <summary>Observe & shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic & rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/resolve-runtime-status/"> Runtime status </a> </li><li> <a href="/__pyric/ui/docs/observe/switch-and-impersonate-identities/"> Impersonate & tenants </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-ship-test"> <summary>Ship & test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-work-with-an-agent"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-trust"> <summary>Trust</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/trust/versioning-and-compatibility/"> Versioning and the fb tag </a> </li><li> <a href="/__pyric/ui/docs/trust/rules-standard-library/"> Rules standard library reference </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-conformance" open> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Conformance scores </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li><li> <a href="/__pyric/ui/docs/firestore-flutter-compat/"> Firestore · Flutter </a> </li><li> <a href="/__pyric/ui/docs/firestore-kotlin-compat/"> Firestore · Kotlin </a> </li><li> <a href="/__pyric/ui/docs/firestore-swift-compat/" aria-current="page"> Firestore · Swift </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" id="nav-group-reference"> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-lite-reference-api/"> pyric/firestore/lite </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-app-check-reference-api/"> pyric/app-check </a> </li><li> <a href="/__pyric/ui/docs/pyric-functions-reference-api/"> pyric/functions </a> </li><li> <a href="/__pyric/ui/docs/pyric-analytics-reference-api/"> pyric/analytics </a> </li><li> <a href="/__pyric/ui/docs/pyric-performance-reference-api/"> pyric/performance </a> </li><li> <a href="/__pyric/ui/docs/pyric-remote-config-reference-api/"> pyric/remote-config </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-reference-api/"> pyric-admin </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-messaging-reference-api/"> pyric-admin/messaging </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-docs-reference-api/"> @pyric/cli/conformance/docs </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-next-reference-api/"> @pyric/cli/next </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bundler-reference-api/"> @pyric/cli/bundler </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-app-bridge-reference-api/"> @pyric/cli/register/app-bridge </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/reference/cli/"> CLI </a> </li> </ul> </div> </div> </details> </nav> <main class="doc-main" data-astro-cid-mw7aashj> <nav class="docs-breadcrumbs" aria-label="Breadcrumb"> <ol> <li> <a href="/__pyric/ui/docs/conformance-scores/">Conformance</a> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span aria-current="page">Firestore · Swift</span> </li> </ol> </nav> <article class="prose" data-astro-cid-mw7aashj> <!-- Generated from the conformance model (registry rows + surface contracts). Do not edit by hand; run bun run compat:generate. -->
|
|
6
|
+
<h1 id="swift-cloud-firestore-integration-compatibility">Swift Cloud Firestore integration compatibility</h1>
|
|
7
|
+
<div class="compat-stat">
|
|
8
|
+
<p class="compat-stat-surface">This page tracks an integration contract: unchanged Firebase code run through a Pyric runtime seam, so there is no separate Firebase public API to measure. The rows below are its signed behavior inventory.</p>
|
|
9
|
+
</div>
|
|
10
|
+
<h2 id="status-legend">Status legend</h2>
|
|
11
|
+
<div class="compat-key">
|
|
12
|
+
<span class="compat-key-item"><span class="compat-dot" data-status="ok"></span><strong>Conforming</strong> — Swift test matches FirebaseFirestore API surface</span>
|
|
13
|
+
<span class="compat-key-item"><span class="compat-dot" data-status="unverified"></span><strong>Unverified</strong> — FirebaseFirestore behavior not yet verified locally</span>
|
|
14
|
+
</div>
|
|
15
|
+
<h2 id="firestore--instance--lifecycle"><code>Firestore</code> — instance & lifecycle</h2>
|
|
16
|
+
<div class="compat-list">
|
|
17
|
+
<details class="compat-row" data-status="ok">
|
|
18
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.firestore()</code><span class="compat-sub"><span class="compat-behavior">Returns the default Firestore instance configured with the default FirebaseApp.</span></span></span></summary>
|
|
19
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L12" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#1</code>.</div></div>
|
|
20
|
+
</details>
|
|
21
|
+
<details class="compat-row" data-status="ok">
|
|
22
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.firestore(app:)</code><span class="compat-sub"><span class="compat-behavior">Returns a Firestore instance associated with the specified FirebaseApp.</span></span></span></summary>
|
|
23
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L18" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#2</code>.</div></div>
|
|
24
|
+
</details>
|
|
25
|
+
<details class="compat-row" data-status="ok">
|
|
26
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.firestore(app:database:)</code><span class="compat-sub"><span class="compat-behavior">Returns a named database instance for the specified FirebaseApp.</span></span></span></summary>
|
|
27
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L24" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#3</code>.</div></div>
|
|
28
|
+
</details>
|
|
29
|
+
<details class="compat-row" data-status="ok">
|
|
30
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.firestore(database:)</code><span class="compat-sub"><span class="compat-behavior">Returns a named database instance for the default FirebaseApp.</span></span></span></summary>
|
|
31
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L30" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#4</code>.</div></div>
|
|
32
|
+
</details>
|
|
33
|
+
<details class="compat-row" data-status="ok">
|
|
34
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.settings</code><span class="compat-sub"><span class="compat-behavior">Provides custom client configuration including host, sslEnabled, dispatchQueue, and cacheSettings.</span></span></span></summary>
|
|
35
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L36" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#5</code>.</div></div>
|
|
36
|
+
</details>
|
|
37
|
+
<details class="compat-row" data-status="ok">
|
|
38
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.app</code><span class="compat-sub"><span class="compat-behavior">Returns the FirebaseApp associated with this Firestore instance.</span></span></span></summary>
|
|
39
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L47" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#6</code>.</div></div>
|
|
40
|
+
</details>
|
|
41
|
+
<details class="compat-row" data-status="ok">
|
|
42
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.document(_:)</code><span class="compat-sub"><span class="compat-behavior">Instantiates a DocumentReference pointing to the slash-delimited document path.</span></span></span></summary>
|
|
43
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L52" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#7</code>.</div></div>
|
|
44
|
+
</details>
|
|
45
|
+
<details class="compat-row" data-status="ok">
|
|
46
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.collection(_:)</code><span class="compat-sub"><span class="compat-behavior">Instantiates a CollectionReference pointing to the slash-delimited collection path.</span></span></span></summary>
|
|
47
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L59" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#8</code>.</div></div>
|
|
48
|
+
</details>
|
|
49
|
+
<details class="compat-row" data-status="ok">
|
|
50
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.collectionGroup(_:)</code><span class="compat-sub"><span class="compat-behavior">Instantiates a Query spanning all collections with the matching collectionID.</span></span></span></summary>
|
|
51
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L66" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#9</code>.</div></div>
|
|
52
|
+
</details>
|
|
53
|
+
<details class="compat-row" data-status="ok">
|
|
54
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.batch()</code><span class="compat-sub"><span class="compat-behavior">Instantiates a WriteBatch for atomic batched mutations.</span></span></span></summary>
|
|
55
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L73" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#10</code>.</div></div>
|
|
56
|
+
</details>
|
|
57
|
+
<details class="compat-row" data-status="ok">
|
|
58
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.runTransaction(_:)</code><span class="compat-sub"><span class="compat-behavior">Executes an interactive transaction block with automatic conflict retry.</span></span></span></summary>
|
|
59
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L83" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#11</code>.</div></div>
|
|
60
|
+
</details>
|
|
61
|
+
<details class="compat-row" data-status="ok">
|
|
62
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.runTransaction(options:block:)</code><span class="compat-sub"><span class="compat-behavior">Executes an interactive transaction with custom TransactionOptions.</span></span></span></summary>
|
|
63
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L96" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#12</code>.</div></div>
|
|
64
|
+
</details>
|
|
65
|
+
<details class="compat-row" data-status="ok">
|
|
66
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.runTransaction(_:) async</code><span class="compat-sub"><span class="compat-behavior">Executes an interactive transaction asynchronously via Swift concurrency.</span></span></span></summary>
|
|
67
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L109" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#13</code>.</div></div>
|
|
68
|
+
</details>
|
|
69
|
+
<details class="compat-row" data-status="ok">
|
|
70
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.useEmulator(host:port:)</code><span class="compat-sub"><span class="compat-behavior">Configures client networking to route requests to a local emulator or Pyric bridge.</span></span></span></summary>
|
|
71
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L117" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#14</code>.</div></div>
|
|
72
|
+
</details>
|
|
73
|
+
<details class="compat-row" data-status="unverified">
|
|
74
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.enableNetwork() / disableNetwork()</code><span class="compat-sub"><span class="compat-behavior">Toggles client network connectivity to simulate offline and online operation.</span></span></span></summary>
|
|
75
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
76
|
+
</details>
|
|
77
|
+
<details class="compat-row" data-status="unverified">
|
|
78
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.clearPersistence()</code><span class="compat-sub"><span class="compat-behavior">Clears offline client persistence cache when no active listeners exist.</span></span></span></summary>
|
|
79
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
80
|
+
</details>
|
|
81
|
+
<details class="compat-row" data-status="ok">
|
|
82
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Firestore.terminate()</code><span class="compat-sub"><span class="compat-behavior">Terminates the client instance and cancels active snapshot listeners.</span></span></span></summary>
|
|
83
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L132" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#17</code>.</div></div>
|
|
84
|
+
</details>
|
|
85
|
+
<details class="compat-row" data-status="unverified">
|
|
86
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.waitForPendingWrites()</code><span class="compat-sub"><span class="compat-behavior">Awaits backend acknowledgment of all pending local writes.</span></span></span></summary>
|
|
87
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
88
|
+
</details>
|
|
89
|
+
<details class="compat-row" data-status="unverified">
|
|
90
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.addSnapshotsInSyncListener(_:)</code><span class="compat-sub"><span class="compat-behavior">Attaches a callback invoked when all active snapshot listeners synchronize.</span></span></span></summary>
|
|
91
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
92
|
+
</details>
|
|
93
|
+
<details class="compat-row" data-status="unverified">
|
|
94
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.loadBundle(_:)</code><span class="compat-sub"><span class="compat-behavior">Loads serialized Firestore bundle data into the local cache.</span></span></span></summary>
|
|
95
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
96
|
+
</details>
|
|
97
|
+
<details class="compat-row" data-status="unverified">
|
|
98
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.getQuery(named:completion:)</code><span class="compat-sub"><span class="compat-behavior">Retrieves a named query from a previously loaded Firestore bundle.</span></span></span></summary>
|
|
99
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
100
|
+
</details>
|
|
101
|
+
</div>
|
|
102
|
+
<h2 id="documentreference--document-operations"><code>DocumentReference</code> — document operations</h2>
|
|
103
|
+
<div class="compat-list">
|
|
104
|
+
<details class="compat-row" data-status="ok">
|
|
105
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.documentID</code><span class="compat-sub"><span class="compat-behavior">Returns the document identifier representing the last path component.</span></span></span></summary>
|
|
106
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L159" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#22</code>.</div></div>
|
|
107
|
+
</details>
|
|
108
|
+
<details class="compat-row" data-status="ok">
|
|
109
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.path</code><span class="compat-sub"><span class="compat-behavior">Returns the slash-delimited path relative to the database root.</span></span></span></summary>
|
|
110
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L165" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#23</code>.</div></div>
|
|
111
|
+
</details>
|
|
112
|
+
<details class="compat-row" data-status="ok">
|
|
113
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.parent</code><span class="compat-sub"><span class="compat-behavior">Returns the parent CollectionReference containing this document.</span></span></span></summary>
|
|
114
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L171" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#24</code>.</div></div>
|
|
115
|
+
</details>
|
|
116
|
+
<details class="compat-row" data-status="ok">
|
|
117
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.collection(_:)</code><span class="compat-sub"><span class="compat-behavior">Instantiates a child CollectionReference nested under this document.</span></span></span></summary>
|
|
118
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L177" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#25</code>.</div></div>
|
|
119
|
+
</details>
|
|
120
|
+
<details class="compat-row" data-status="ok">
|
|
121
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.getDocument(source:)</code><span class="compat-sub"><span class="compat-behavior">Reads document snapshot from server, cache, or default source.</span></span></span></summary>
|
|
122
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L184" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#26</code>.</div></div>
|
|
123
|
+
</details>
|
|
124
|
+
<details class="compat-row" data-status="ok">
|
|
125
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.setData(_:)</code><span class="compat-sub"><span class="compat-behavior">Overwrites the target document completely with provided dictionary payload.</span></span></span></summary>
|
|
126
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L192" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#27</code>.</div></div>
|
|
127
|
+
</details>
|
|
128
|
+
<details class="compat-row" data-status="ok">
|
|
129
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.setData(_:merge:)</code><span class="compat-sub"><span class="compat-behavior">Merges payload fields into existing document without overwriting unspecified fields.</span></span></span></summary>
|
|
130
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L201" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#28</code>.</div></div>
|
|
131
|
+
</details>
|
|
132
|
+
<details class="compat-row" data-status="ok">
|
|
133
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.setData(_:mergeFields:)</code><span class="compat-sub"><span class="compat-behavior">Replaces only explicitly specified field paths in the target document.</span></span></span></summary>
|
|
134
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L209" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#29</code>.</div></div>
|
|
135
|
+
</details>
|
|
136
|
+
<details class="compat-row" data-status="ok">
|
|
137
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.updateData(_:)</code><span class="compat-sub"><span class="compat-behavior">Updates specified fields in an existing document; fails if document does not exist.</span></span></span></summary>
|
|
138
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L217" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#30</code>.</div></div>
|
|
139
|
+
</details>
|
|
140
|
+
<details class="compat-row" data-status="ok">
|
|
141
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.delete()</code><span class="compat-sub"><span class="compat-behavior">Deletes document at reference path from Firestore database.</span></span></span></summary>
|
|
142
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L226" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#31</code>.</div></div>
|
|
143
|
+
</details>
|
|
144
|
+
<details class="compat-row" data-status="ok">
|
|
145
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.addSnapshotListener(_:)</code><span class="compat-sub"><span class="compat-behavior">Attaches real-time closure listener receiving DocumentSnapshot updates.</span></span></span></summary>
|
|
146
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L234" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#32</code>.</div></div>
|
|
147
|
+
</details>
|
|
148
|
+
<details class="compat-row" data-status="ok">
|
|
149
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.addSnapshotListener(includeMetadataChanges:listener:)</code><span class="compat-sub"><span class="compat-behavior">Listens to document snapshot updates including metadata-only transitions.</span></span></span></summary>
|
|
150
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L247" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#33</code>.</div></div>
|
|
151
|
+
</details>
|
|
152
|
+
<details class="compat-row" data-status="ok">
|
|
153
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.addSnapshotListener(options:listener:)</code><span class="compat-sub"><span class="compat-behavior">Listens to document updates configured with SnapshotListenOptions.</span></span></span></summary>
|
|
154
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L257" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#34</code>.</div></div>
|
|
155
|
+
</details>
|
|
156
|
+
</div>
|
|
157
|
+
<h2 id="collectionreference--collection-operations"><code>CollectionReference</code> — collection operations</h2>
|
|
158
|
+
<div class="compat-list">
|
|
159
|
+
<details class="compat-row" data-status="ok">
|
|
160
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">CollectionReference.collectionID</code><span class="compat-sub"><span class="compat-behavior">Returns the collection identifier string.</span></span></span></summary>
|
|
161
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L272" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#35</code>.</div></div>
|
|
162
|
+
</details>
|
|
163
|
+
<details class="compat-row" data-status="ok">
|
|
164
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">CollectionReference.path</code><span class="compat-sub"><span class="compat-behavior">Returns the full slash-separated collection path relative to database root.</span></span></span></summary>
|
|
165
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L278" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#36</code>.</div></div>
|
|
166
|
+
</details>
|
|
167
|
+
<details class="compat-row" data-status="ok">
|
|
168
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">CollectionReference.parent</code><span class="compat-sub"><span class="compat-behavior">Returns parent DocumentReference or nil if this is a root collection.</span></span></span></summary>
|
|
169
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L284" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#37</code>.</div></div>
|
|
170
|
+
</details>
|
|
171
|
+
<details class="compat-row" data-status="ok">
|
|
172
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">CollectionReference.document()</code><span class="compat-sub"><span class="compat-behavior">Instantiates a child DocumentReference with an auto-generated unique ID.</span></span></span></summary>
|
|
173
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L292" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#38</code>.</div></div>
|
|
174
|
+
</details>
|
|
175
|
+
<details class="compat-row" data-status="ok">
|
|
176
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">CollectionReference.document(_:)</code><span class="compat-sub"><span class="compat-behavior">Instantiates a child DocumentReference at relative document path.</span></span></span></summary>
|
|
177
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L299" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#39</code>.</div></div>
|
|
178
|
+
</details>
|
|
179
|
+
<details class="compat-row" data-status="ok">
|
|
180
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">CollectionReference.addDocument(data:)</code><span class="compat-sub"><span class="compat-behavior">Auto-generates document ID, writes data payload, and returns document reference.</span></span></span></summary>
|
|
181
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L306" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#40</code>.</div></div>
|
|
182
|
+
</details>
|
|
183
|
+
</div>
|
|
184
|
+
<h2 id="query--filters--constraints"><code>Query</code> — filters & constraints</h2>
|
|
185
|
+
<div class="compat-list">
|
|
186
|
+
<details class="compat-row" data-status="ok">
|
|
187
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:isEqualTo:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents matching exact field equality.</span></span></span></summary>
|
|
188
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L318" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#41</code>.</div></div>
|
|
189
|
+
</details>
|
|
190
|
+
<details class="compat-row" data-status="ok">
|
|
191
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:isNotEqualTo:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where field does not equal value.</span></span></span></summary>
|
|
192
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L328" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#42</code>.</div></div>
|
|
193
|
+
</details>
|
|
194
|
+
<details class="compat-row" data-status="ok">
|
|
195
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:isLessThan:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where field is strictly less than value.</span></span></span></summary>
|
|
196
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L338" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#43</code>.</div></div>
|
|
197
|
+
</details>
|
|
198
|
+
<details class="compat-row" data-status="ok">
|
|
199
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:isLessThanOrEqualTo:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where field is less than or equal to value.</span></span></span></summary>
|
|
200
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L348" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#44</code>.</div></div>
|
|
201
|
+
</details>
|
|
202
|
+
<details class="compat-row" data-status="ok">
|
|
203
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:isGreaterThan:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where field is strictly greater than value.</span></span></span></summary>
|
|
204
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L358" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#45</code>.</div></div>
|
|
205
|
+
</details>
|
|
206
|
+
<details class="compat-row" data-status="ok">
|
|
207
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:isGreaterThanOrEqualTo:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where field is greater than or equal to value.</span></span></span></summary>
|
|
208
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L368" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#46</code>.</div></div>
|
|
209
|
+
</details>
|
|
210
|
+
<details class="compat-row" data-status="ok">
|
|
211
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:arrayContains:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where array field contains argument element.</span></span></span></summary>
|
|
212
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L378" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#47</code>.</div></div>
|
|
213
|
+
</details>
|
|
214
|
+
<details class="compat-row" data-status="ok">
|
|
215
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:arrayContainsAny:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where array field contains any element from argument list.</span></span></span></summary>
|
|
216
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L388" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#48</code>.</div></div>
|
|
217
|
+
</details>
|
|
218
|
+
<details class="compat-row" data-status="ok">
|
|
219
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:in:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where field value matches any element in argument list.</span></span></span></summary>
|
|
220
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L398" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#49</code>.</div></div>
|
|
221
|
+
</details>
|
|
222
|
+
<details class="compat-row" data-status="ok">
|
|
223
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereField(_:notIn:)</code><span class="compat-sub"><span class="compat-behavior">Filters documents where field value matches none in argument list.</span></span></span></summary>
|
|
224
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L408" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#50</code>.</div></div>
|
|
225
|
+
</details>
|
|
226
|
+
<details class="compat-row" data-status="ok">
|
|
227
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.whereFilter(_:)</code><span class="compat-sub"><span class="compat-behavior">Applies composite boolean Filter using andFilter or orFilter disjunctions.</span></span></span></summary>
|
|
228
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L418" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#51</code>.</div></div>
|
|
229
|
+
</details>
|
|
230
|
+
<details class="compat-row" data-status="ok">
|
|
231
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.order(by:)</code><span class="compat-sub"><span class="compat-behavior">Sorts query results by field ascending.</span></span></span></summary>
|
|
232
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L430" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#52</code>.</div></div>
|
|
233
|
+
</details>
|
|
234
|
+
<details class="compat-row" data-status="ok">
|
|
235
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.order(by:descending:)</code><span class="compat-sub"><span class="compat-behavior">Sorts query results by field ascending or descending.</span></span></span></summary>
|
|
236
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L440" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#53</code>.</div></div>
|
|
237
|
+
</details>
|
|
238
|
+
<details class="compat-row" data-status="ok">
|
|
239
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.limit(to:)</code><span class="compat-sub"><span class="compat-behavior">Limits maximum number of matching documents from start of query results.</span></span></span></summary>
|
|
240
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L450" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#54</code>.</div></div>
|
|
241
|
+
</details>
|
|
242
|
+
<details class="compat-row" data-status="ok">
|
|
243
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.limit(toLast:)</code><span class="compat-sub"><span class="compat-behavior">Limits results to last N documents requiring explicit orderBy constraint.</span></span></span></summary>
|
|
244
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L460" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#55</code>.</div></div>
|
|
245
|
+
</details>
|
|
246
|
+
<details class="compat-row" data-status="ok">
|
|
247
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.start(at:) / start(after:)</code><span class="compat-sub"><span class="compat-behavior">Positions starting cursor using ordered field values.</span></span></span></summary>
|
|
248
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L470" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#56</code>.</div></div>
|
|
249
|
+
</details>
|
|
250
|
+
<details class="compat-row" data-status="ok">
|
|
251
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.end(before:) / end(at:)</code><span class="compat-sub"><span class="compat-behavior">Positions ending cursor using ordered field values.</span></span></span></summary>
|
|
252
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L480" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#57</code>.</div></div>
|
|
253
|
+
</details>
|
|
254
|
+
<details class="compat-row" data-status="ok">
|
|
255
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.start(atDocument:) / start(afterDocument:)</code><span class="compat-sub"><span class="compat-behavior">Positions starting cursor using DocumentSnapshot position.</span></span></span></summary>
|
|
256
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L490" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#58</code>.</div></div>
|
|
257
|
+
</details>
|
|
258
|
+
<details class="compat-row" data-status="ok">
|
|
259
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.end(beforeDocument:) / end(atDocument:)</code><span class="compat-sub"><span class="compat-behavior">Positions ending cursor using DocumentSnapshot position.</span></span></span></summary>
|
|
260
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L498" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#59</code>.</div></div>
|
|
261
|
+
</details>
|
|
262
|
+
<details class="compat-row" data-status="ok">
|
|
263
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.getDocuments(source:)</code><span class="compat-sub"><span class="compat-behavior">Executes query and returns QuerySnapshot from server, cache, or default source.</span></span></span></summary>
|
|
264
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L506" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#60</code>.</div></div>
|
|
265
|
+
</details>
|
|
266
|
+
<details class="compat-row" data-status="ok">
|
|
267
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.addSnapshotListener(_:)</code><span class="compat-sub"><span class="compat-behavior">Attaches real-time query listener returning ListenerRegistration handle.</span></span></span></summary>
|
|
268
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L513" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#61</code>.</div></div>
|
|
269
|
+
</details>
|
|
270
|
+
<details class="compat-row" data-status="ok">
|
|
271
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.addSnapshotListener(includeMetadataChanges:listener:)</code><span class="compat-sub"><span class="compat-behavior">Attaches real-time query listener receiving metadata-only change notifications.</span></span></span></summary>
|
|
272
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L525" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#62</code>.</div></div>
|
|
273
|
+
</details>
|
|
274
|
+
<details class="compat-row" data-status="ok">
|
|
275
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.addSnapshotListener(options:listener:)</code><span class="compat-sub"><span class="compat-behavior">Attaches real-time query listener configured with SnapshotListenOptions.</span></span></span></summary>
|
|
276
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L535" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#63</code>.</div></div>
|
|
277
|
+
</details>
|
|
278
|
+
</div>
|
|
279
|
+
<h2 id="snapshots--metadata">Snapshots & metadata</h2>
|
|
280
|
+
<div class="compat-list">
|
|
281
|
+
<details class="compat-row" data-status="ok">
|
|
282
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.exists</code><span class="compat-sub"><span class="compat-behavior">Boolean indicating whether document currently exists in Firestore.</span></span></span></summary>
|
|
283
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L550" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#64</code>.</div></div>
|
|
284
|
+
</details>
|
|
285
|
+
<details class="compat-row" data-status="ok">
|
|
286
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.documentID</code><span class="compat-sub"><span class="compat-behavior">Unique key string identifying the snapshot document.</span></span></span></summary>
|
|
287
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L558" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#65</code>.</div></div>
|
|
288
|
+
</details>
|
|
289
|
+
<details class="compat-row" data-status="ok">
|
|
290
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.reference</code><span class="compat-sub"><span class="compat-behavior">DocumentReference pointing to the snapshot document location.</span></span></span></summary>
|
|
291
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L564" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#66</code>.</div></div>
|
|
292
|
+
</details>
|
|
293
|
+
<details class="compat-row" data-status="ok">
|
|
294
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.metadata</code><span class="compat-sub"><span class="compat-behavior">SnapshotMetadata describing cache origin and pending write status.</span></span></span></summary>
|
|
295
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L570" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#67</code>.</div></div>
|
|
296
|
+
</details>
|
|
297
|
+
<details class="compat-row" data-status="ok">
|
|
298
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.data()</code><span class="compat-sub"><span class="compat-behavior">Returns dictionary of document fields or nil if document does not exist.</span></span></span></summary>
|
|
299
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L577" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#68</code>.</div></div>
|
|
300
|
+
</details>
|
|
301
|
+
<details class="compat-row" data-status="ok">
|
|
302
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.data(with:)</code><span class="compat-sub"><span class="compat-behavior">Returns document fields configuring ServerTimestampBehavior handling.</span></span></span></summary>
|
|
303
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L585" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#69</code>.</div></div>
|
|
304
|
+
</details>
|
|
305
|
+
<details class="compat-row" data-status="ok">
|
|
306
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.get(_:)</code><span class="compat-sub"><span class="compat-behavior">Extracts nested field value supporting dot-delimited string or FieldPath.</span></span></span></summary>
|
|
307
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L591" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#70</code>.</div></div>
|
|
308
|
+
</details>
|
|
309
|
+
<details class="compat-row" data-status="ok">
|
|
310
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.subscript</code><span class="compat-sub"><span class="compat-behavior">Provides subscript syntax snapshot[key] to access document fields.</span></span></span></summary>
|
|
311
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L600" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#71</code>.</div></div>
|
|
312
|
+
</details>
|
|
313
|
+
<details class="compat-row" data-status="ok">
|
|
314
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">QueryDocumentSnapshot</code><span class="compat-sub"><span class="compat-behavior">Guaranteed-existent document snapshot subclass where data() is non-optional.</span></span></span></summary>
|
|
315
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L606" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#72</code>.</div></div>
|
|
316
|
+
</details>
|
|
317
|
+
<details class="compat-row" data-status="ok">
|
|
318
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">SnapshotMetadata (hasPendingWrites, isFromCache)</code><span class="compat-sub"><span class="compat-behavior">Flags indicating uncommitted local writes and cache data origin.</span></span></span></summary>
|
|
319
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L613" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#73</code>.</div></div>
|
|
320
|
+
</details>
|
|
321
|
+
<details class="compat-row" data-status="ok">
|
|
322
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">QuerySnapshot.documents</code><span class="compat-sub"><span class="compat-behavior">Ordered array of QueryDocumentSnapshot instances matched by query.</span></span></span></summary>
|
|
323
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L619" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#74</code>.</div></div>
|
|
324
|
+
</details>
|
|
325
|
+
<details class="compat-row" data-status="ok">
|
|
326
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">QuerySnapshot.documentChanges</code><span class="compat-sub"><span class="compat-behavior">List of DocumentChange deltas since previous snapshot emission.</span></span></span></summary>
|
|
327
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L629" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#75</code>.</div></div>
|
|
328
|
+
</details>
|
|
329
|
+
<details class="compat-row" data-status="ok">
|
|
330
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">QuerySnapshot.documentChanges(includeMetadataChanges:)</code><span class="compat-sub"><span class="compat-behavior">List of DocumentChange deltas including metadata-only changes.</span></span></span></summary>
|
|
331
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L638" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#76</code>.</div></div>
|
|
332
|
+
</details>
|
|
333
|
+
<details class="compat-row" data-status="ok">
|
|
334
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">QuerySnapshot.isEmpty / count</code><span class="compat-sub"><span class="compat-behavior">Inspection properties reporting empty status and count of matched documents.</span></span></span></summary>
|
|
335
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L646" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#77</code>.</div></div>
|
|
336
|
+
</details>
|
|
337
|
+
<details class="compat-row" data-status="ok">
|
|
338
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentChange (type, document, oldIndex, newIndex)</code><span class="compat-sub"><span class="compat-behavior">Delta change descriptor indicating added, modified, or removed mutations.</span></span></span></summary>
|
|
339
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L652" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#78</code>.</div></div>
|
|
340
|
+
</details>
|
|
341
|
+
</div>
|
|
342
|
+
<h2 id="writebatch--atomic-batches"><code>WriteBatch</code> — atomic batches</h2>
|
|
343
|
+
<div class="compat-list">
|
|
344
|
+
<details class="compat-row" data-status="ok">
|
|
345
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">WriteBatch.setData(_:forDocument:)</code><span class="compat-sub"><span class="compat-behavior">Enqueues set overwrite operation into atomic mutation batch.</span></span></span></summary>
|
|
346
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L666" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#79</code>.</div></div>
|
|
347
|
+
</details>
|
|
348
|
+
<details class="compat-row" data-status="ok">
|
|
349
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">WriteBatch.setData(_:forDocument:merge:)</code><span class="compat-sub"><span class="compat-behavior">Enqueues set merge operation into atomic mutation batch.</span></span></span></summary>
|
|
350
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L677" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#80</code>.</div></div>
|
|
351
|
+
</details>
|
|
352
|
+
<details class="compat-row" data-status="ok">
|
|
353
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">WriteBatch.setData(_:forDocument:mergeFields:)</code><span class="compat-sub"><span class="compat-behavior">Enqueues selective field merge operation into atomic mutation batch.</span></span></span></summary>
|
|
354
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L688" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#81</code>.</div></div>
|
|
355
|
+
</details>
|
|
356
|
+
<details class="compat-row" data-status="ok">
|
|
357
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">WriteBatch.updateData(_:forDocument:)</code><span class="compat-sub"><span class="compat-behavior">Enqueues update operation into atomic mutation batch.</span></span></span></summary>
|
|
358
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L699" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#82</code>.</div></div>
|
|
359
|
+
</details>
|
|
360
|
+
<details class="compat-row" data-status="ok">
|
|
361
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">WriteBatch.deleteDocument(_:)</code><span class="compat-sub"><span class="compat-behavior">Enqueues document deletion into atomic mutation batch.</span></span></span></summary>
|
|
362
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L710" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#83</code>.</div></div>
|
|
363
|
+
</details>
|
|
364
|
+
<details class="compat-row" data-status="ok">
|
|
365
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">WriteBatch.commit()</code><span class="compat-sub"><span class="compat-behavior">Atomically commits all enqueued batch mutations in a single transaction.</span></span></span></summary>
|
|
366
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L721" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#84</code>.</div></div>
|
|
367
|
+
</details>
|
|
368
|
+
</div>
|
|
369
|
+
<h2 id="transaction--interactive-transactions"><code>Transaction</code> — interactive transactions</h2>
|
|
370
|
+
<div class="compat-list">
|
|
371
|
+
<details class="compat-row" data-status="ok">
|
|
372
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Transaction.getDocument(_:)</code><span class="compat-sub"><span class="compat-behavior">Reads document snapshot within transaction and establishes read lock.</span></span></span></summary>
|
|
373
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L736" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#85</code>.</div></div>
|
|
374
|
+
</details>
|
|
375
|
+
<details class="compat-row" data-status="ok">
|
|
376
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Transaction.setData(_:forDocument:)</code><span class="compat-sub"><span class="compat-behavior">Stages transactional set overwrite mutation.</span></span></span></summary>
|
|
377
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L746" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#86</code>.</div></div>
|
|
378
|
+
</details>
|
|
379
|
+
<details class="compat-row" data-status="ok">
|
|
380
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Transaction.setData(_:forDocument:merge:)</code><span class="compat-sub"><span class="compat-behavior">Stages transactional set merge mutation.</span></span></span></summary>
|
|
381
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L758" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#87</code>.</div></div>
|
|
382
|
+
</details>
|
|
383
|
+
<details class="compat-row" data-status="ok">
|
|
384
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Transaction.setData(_:forDocument:mergeFields:)</code><span class="compat-sub"><span class="compat-behavior">Stages transactional selective field merge mutation.</span></span></span></summary>
|
|
385
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L770" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#88</code>.</div></div>
|
|
386
|
+
</details>
|
|
387
|
+
<details class="compat-row" data-status="ok">
|
|
388
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Transaction.updateData(_:forDocument:)</code><span class="compat-sub"><span class="compat-behavior">Stages transactional update mutation for existing document.</span></span></span></summary>
|
|
389
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L782" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#89</code>.</div></div>
|
|
390
|
+
</details>
|
|
391
|
+
<details class="compat-row" data-status="ok">
|
|
392
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Transaction.deleteDocument(_:)</code><span class="compat-sub"><span class="compat-behavior">Stages transactional document deletion.</span></span></span></summary>
|
|
393
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L794" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#90</code>.</div></div>
|
|
394
|
+
</details>
|
|
395
|
+
<details class="compat-row" data-status="ok">
|
|
396
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">TransactionOptions.maxAttempts</code><span class="compat-sub"><span class="compat-behavior">Configures maximum retry attempts upon transactional concurrent contention.</span></span></span></summary>
|
|
397
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L806" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#91</code>.</div></div>
|
|
398
|
+
</details>
|
|
399
|
+
</div>
|
|
400
|
+
<h2 id="fieldvalue--sentinels--transformations"><code>FieldValue</code> — sentinels & transformations</h2>
|
|
401
|
+
<div class="compat-list">
|
|
402
|
+
<details class="compat-row" data-status="ok">
|
|
403
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">FieldValue.serverTimestamp()</code><span class="compat-sub"><span class="compat-behavior">Sentinel replaced by server commit timestamp during write processing.</span></span></span></summary>
|
|
404
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L816" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#92</code>.</div></div>
|
|
405
|
+
</details>
|
|
406
|
+
<details class="compat-row" data-status="ok">
|
|
407
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">FieldValue.delete()</code><span class="compat-sub"><span class="compat-behavior">Sentinel deleting target field during document update operation.</span></span></span></summary>
|
|
408
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L822" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#93</code>.</div></div>
|
|
409
|
+
</details>
|
|
410
|
+
<details class="compat-row" data-status="ok">
|
|
411
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">FieldValue.increment(_:)</code><span class="compat-sub"><span class="compat-behavior">Operand atomically incrementing numeric integer or double field value.</span></span></span></summary>
|
|
412
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L828" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#94</code>.</div></div>
|
|
413
|
+
</details>
|
|
414
|
+
<details class="compat-row" data-status="ok">
|
|
415
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">FieldValue.arrayUnion(_:)</code><span class="compat-sub"><span class="compat-behavior">Transformation adding unique elements to array field if absent.</span></span></span></summary>
|
|
416
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L840" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#95</code>.</div></div>
|
|
417
|
+
</details>
|
|
418
|
+
<details class="compat-row" data-status="ok">
|
|
419
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">FieldValue.arrayRemove(_:)</code><span class="compat-sub"><span class="compat-behavior">Transformation removing matching elements from array field.</span></span></span></summary>
|
|
420
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L847" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#96</code>.</div></div>
|
|
421
|
+
</details>
|
|
422
|
+
<details class="compat-row" data-status="ok">
|
|
423
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">FieldValue.vector(_:)</code><span class="compat-sub"><span class="compat-behavior">Constructs dense vector embedding from Double or Float array.</span></span></span></summary>
|
|
424
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L854" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#97</code>.</div></div>
|
|
425
|
+
</details>
|
|
426
|
+
</div>
|
|
427
|
+
<h2 id="data-types--value-codecs">Data types & value codecs</h2>
|
|
428
|
+
<div class="compat-list">
|
|
429
|
+
<details class="compat-row" data-status="ok">
|
|
430
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Timestamp</code><span class="compat-sub"><span class="compat-behavior">UTC timestamp representing 64-bit seconds and nanosecond resolution.</span></span></span></summary>
|
|
431
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L864" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#98</code>.</div></div>
|
|
432
|
+
</details>
|
|
433
|
+
<details class="compat-row" data-status="ok">
|
|
434
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">GeoPoint</code><span class="compat-sub"><span class="compat-behavior">Immutable geographic coordinate pair with latitude and longitude bounds.</span></span></span></summary>
|
|
435
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L874" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#99</code>.</div></div>
|
|
436
|
+
</details>
|
|
437
|
+
<details class="compat-row" data-status="ok">
|
|
438
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">FieldPath</code><span class="compat-sub"><span class="compat-behavior">Path pointing to nested document field or documentID sentinel.</span></span></span></summary>
|
|
439
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L884" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#100</code>.</div></div>
|
|
440
|
+
</details>
|
|
441
|
+
</div>
|
|
442
|
+
<h2 id="concurrency--async-sequences">Concurrency & async sequences</h2>
|
|
443
|
+
<div class="compat-list">
|
|
444
|
+
<details class="compat-row" data-status="ok">
|
|
445
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DocumentReference.snapshots</code><span class="compat-sub"><span class="compat-behavior">AsyncSequence streaming real-time DocumentSnapshot updates via Swift concurrency.</span></span></span></summary>
|
|
446
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L895" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#101</code>.</div></div>
|
|
447
|
+
</details>
|
|
448
|
+
<details class="compat-row" data-status="ok">
|
|
449
|
+
<summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">Query.snapshots</code><span class="compat-sub"><span class="compat-behavior">AsyncSequence streaming real-time QuerySnapshot updates via Swift concurrency.</span></span></span></summary>
|
|
450
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift#L903" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceTests.swift</code></a> assertion set <code>firestore-swift#102</code>.</div></div>
|
|
451
|
+
</details>
|
|
452
|
+
</div>
|
|
453
|
+
<h2 id="codable-integration">Codable integration</h2>
|
|
454
|
+
<div class="compat-list">
|
|
455
|
+
<details class="compat-row" data-status="unverified">
|
|
456
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">@DocumentID</code><span class="compat-sub"><span class="compat-behavior">Property wrapper populating document ID on decoding; omitted from write payloads.</span></span></span></summary>
|
|
457
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
458
|
+
</details>
|
|
459
|
+
<details class="compat-row" data-status="unverified">
|
|
460
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">@ServerTimestamp</code><span class="compat-sub"><span class="compat-behavior">Property wrapper encoding nil as serverTimestamp sentinel on write.</span></span></span></summary>
|
|
461
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
462
|
+
</details>
|
|
463
|
+
<details class="compat-row" data-status="unverified">
|
|
464
|
+
<summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.data(as:decoder:)</code><span class="compat-sub"><span class="compat-behavior">Decodes document snapshot fields directly into Decodable model.</span></span></span></summary>
|
|
465
|
+
<div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification; unverified locally.</div></div>
|
|
466
|
+
</details>
|
|
467
|
+
</div>
|
|
468
|
+
<h2 id="current-gaps">Current gaps</h2>
|
|
469
|
+
<h3 id="unverified">Unverified</h3>
|
|
470
|
+
<p>Tracked behavior whose available evidence does not yet establish the production result.</p>
|
|
471
|
+
<div class="compat-list">
|
|
472
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.enableNetwork() / disableNetwork()</code><span class="compat-sub"><span class="compat-behavior">Toggles client network connectivity to simulate offline and online operation.</span></span></span></summary>
|
|
473
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
474
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.clearPersistence()</code><span class="compat-sub"><span class="compat-behavior">Clears offline client persistence cache when no active listeners exist.</span></span></span></summary>
|
|
475
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
476
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.waitForPendingWrites()</code><span class="compat-sub"><span class="compat-behavior">Awaits backend acknowledgment of all pending local writes.</span></span></span></summary>
|
|
477
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
478
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.addSnapshotsInSyncListener(_:)</code><span class="compat-sub"><span class="compat-behavior">Attaches a callback invoked when all active snapshot listeners synchronize.</span></span></span></summary>
|
|
479
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
480
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.loadBundle(_:)</code><span class="compat-sub"><span class="compat-behavior">Loads serialized Firestore bundle data into the local cache.</span></span></span></summary>
|
|
481
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
482
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">Firestore.getQuery(named:completion:)</code><span class="compat-sub"><span class="compat-behavior">Retrieves a named query from a previously loaded Firestore bundle.</span></span></span></summary>
|
|
483
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
484
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">@DocumentID</code><span class="compat-sub"><span class="compat-behavior">Property wrapper populating document ID on decoding; omitted from write payloads.</span></span></span></summary>
|
|
485
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
486
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">@ServerTimestamp</code><span class="compat-sub"><span class="compat-behavior">Property wrapper encoding nil as serverTimestamp sentinel on write.</span></span></span></summary>
|
|
487
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
488
|
+
<details class="compat-row" data-status="unverified"><summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">DocumentSnapshot.data(as:decoder:)</code><span class="compat-sub"><span class="compat-behavior">Decodes document snapshot fields directly into Decodable model.</span></span></span></summary>
|
|
489
|
+
<div class="compat-evidence"><div class="compat-note">FirebaseFirestore Swift specification; unverified locally.</div></div></details>
|
|
490
|
+
</div> </article> </main> <aside class="doc-toc" aria-label="On this page" data-astro-cid-mw7aashj> <h2 class="doc-toc-heading" data-astro-cid-mw7aashj>On this page</h2> <ul data-astro-cid-mw7aashj> <li data-depth="2" data-astro-cid-mw7aashj> <a href="#status-legend" data-astro-cid-mw7aashj>Status legend</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#firestore--instance--lifecycle" data-astro-cid-mw7aashj>Firestore — instance & lifecycle</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#documentreference--document-operations" data-astro-cid-mw7aashj>DocumentReference — document operations</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#collectionreference--collection-operations" data-astro-cid-mw7aashj>CollectionReference — collection operations</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#query--filters--constraints" data-astro-cid-mw7aashj>Query — filters & constraints</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#snapshots--metadata" data-astro-cid-mw7aashj>Snapshots & metadata</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#writebatch--atomic-batches" data-astro-cid-mw7aashj>WriteBatch — atomic batches</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#transaction--interactive-transactions" data-astro-cid-mw7aashj>Transaction — interactive transactions</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#fieldvalue--sentinels--transformations" data-astro-cid-mw7aashj>FieldValue — sentinels & transformations</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#data-types--value-codecs" data-astro-cid-mw7aashj>Data types & value codecs</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#concurrency--async-sequences" data-astro-cid-mw7aashj>Concurrency & async sequences</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#codable-integration" data-astro-cid-mw7aashj>Codable integration</a> </li><li data-depth="2" data-astro-cid-mw7aashj> <a href="#current-gaps" data-astro-cid-mw7aashj>Current gaps</a> </li><li data-depth="3" data-astro-cid-mw7aashj> <a href="#unverified" data-astro-cid-mw7aashj>Unverified</a> </li> </ul> </aside> </div> <script type="module">const a=document.querySelector("[data-api-symbol-filter]"),d=[...document.querySelectorAll("[data-api-symbol-group]")],n=document.querySelector("[data-api-symbol-empty]");a?.addEventListener("input",()=>{const t=a.value.trim().toLowerCase();let o=0;for(const i of d){let e=0;i.querySelectorAll("[data-api-symbol]").forEach(l=>{const r=!t||(l.dataset.apiSymbol??"").includes(t);l.hidden=!r,r&&e++}),i.hidden=e===0,o+=e}n&&(n.hidden=o>0)});</script> <script type="module">const s=new Map;document.querySelectorAll('.doc-toc a[href^="#"]').forEach(t=>s.set(decodeURIComponent(t.hash.slice(1)),t));if(s.size>0){const t=new Set,n=()=>{let o=null;for(const e of s.keys())if(t.has(e)){o=e;break}s.forEach((e,c)=>e.classList.toggle("active",c===o))},r=new IntersectionObserver(o=>{for(const e of o)e.isIntersecting?t.add(e.target.id):t.delete(e.target.id);n()},{rootMargin:"-72px 0px -60% 0px"});s.forEach((o,e)=>{const c=document.getElementById(e);c&&r.observe(c)})}</script> <script type="module">document.querySelector('.studio__nav [aria-current="page"]')?.scrollIntoView({block:"nearest",inline:"center"});</script> </body></html>
|