diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index ae7db338588..ba40036c669 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -9,3 +9,4 @@
* @googleapis/cloud-sdk-nodejs-team
/handwritten/bigquery @googleapis/bigquery-team
/handwritten/cloud-profiler @googleapis/cloud-profiler-team
+/handwritten/firestore @googleapis/cloud-sdk-nodejs-team
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 9afa1ee8000..35d9d39608e 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,9 +1,10 @@
{
- "handwritten/datastore": "10.1.0",
- "handwritten/logging-winston": "6.0.1",
"handwritten/bigquery": "8.2.0",
"handwritten/cloud-profiler": "6.0.4",
+ "handwritten/datastore": "10.1.0",
+ "handwritten/firestore": "8.3.0",
"handwritten/logging-bunyan": "5.1.1",
+ "handwritten/logging-winston": "6.0.1",
"packages/gapic-node-processing": "0.1.6",
"packages/google-ads-admanager": "0.5.0",
"packages/google-ads-datamanager": "0.1.0",
diff --git a/handwritten/firestore/.OwlBot.yaml b/handwritten/firestore/.OwlBot.yaml
new file mode 100644
index 00000000000..4bf33471f7f
--- /dev/null
+++ b/handwritten/firestore/.OwlBot.yaml
@@ -0,0 +1,26 @@
+# Copyright 2021 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+deep-remove-regex:
+ - /owl-bot-staging
+
+deep-copy-regex:
+ - source: /google/firestore/(v.*)/.*-nodejs
+ dest: /owl-bot-staging/firestore/$1
+ - source: /google/firestore/admin/(v.*)/.*-nodejs
+ dest: /owl-bot-staging/admin/$1/$2
+
+begin-after-commit-hash: d3509d2520fb8db862129633f1cf8406d17454e1
+
diff --git a/handwritten/firestore/.eslintignore b/handwritten/firestore/.eslintignore
new file mode 100644
index 00000000000..ea5b04aebe6
--- /dev/null
+++ b/handwritten/firestore/.eslintignore
@@ -0,0 +1,7 @@
+**/node_modules
+**/coverage
+test/fixtures
+build/
+docs/
+protos/
+samples/generated/
diff --git a/handwritten/firestore/.eslintrc.json b/handwritten/firestore/.eslintrc.json
new file mode 100644
index 00000000000..ed46c46a7ae
--- /dev/null
+++ b/handwritten/firestore/.eslintrc.json
@@ -0,0 +1,73 @@
+{
+ "extends": "./node_modules/gts",
+ "overrides": [
+ {
+ "files": [
+ "dev/src/**/*.ts"
+ ],
+ "excludedFiles": [
+ "dev/src/v1/*.ts",
+ "dev/src/v1beta1/*.ts"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "rules": {
+ "@typescript-eslint/explicit-function-return-type": [
+ "error",
+ {
+ "allowExpressions": true,
+ "allowTypedFunctionExpressions": true
+ }
+ ],
+ "no-console": ["error", {"allow": ["error"]}],
+ "@typescript-eslint/no-unused-vars": [
+ "warn",
+ {
+ // Ignore args that are underscore only
+ "argsIgnorePattern": "^_$"
+ }
+ ]
+ }
+ },
+ {
+ "files": [
+ "dev/test/*.ts",
+ "dev/system-test/*.ts"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "rules": {
+ "no-restricted-properties": [
+ "error",
+ {
+ "object": "describe",
+ "property": "only"
+ },
+ {
+ "object": "it",
+ "property": "only"
+ }
+ ],
+ "@typescript-eslint/no-unused-vars": [
+ "warn",
+ {
+ // Ignore args that are underscore only
+ "argsIgnorePattern": "^_$"
+ }
+ ],
+ "@typescript-eslint/no-floating-promises": "warn"
+ }
+ },
+ {
+ "files": [
+ "dev/src/v1/**/*.ts",
+ "dev/src/v1beta1/**/*.ts",
+ "dev/test/gapic_firestore_v1.ts",
+ "dev/test/gapic_firestore_admin_v1.ts",
+ "dev/test/gapic_firestore_admin_v1.ts"
+ ],
+ "rules": {
+ "@typescript-eslint/no-explicit-any": ["off"],
+ "@typescript-eslint/no-floating-promises": ["off"]
+ }
+ }
+ ]
+}
diff --git a/handwritten/firestore/.gitattributes b/handwritten/firestore/.gitattributes
new file mode 100644
index 00000000000..33739cb74e4
--- /dev/null
+++ b/handwritten/firestore/.gitattributes
@@ -0,0 +1,4 @@
+*.ts text eol=lf
+*.js text eol=lf
+protos/* linguist-generated
+**/api-extractor.json linguist-language=JSON-with-Comments
diff --git a/handwritten/firestore/.gitignore b/handwritten/firestore/.gitignore
new file mode 100644
index 00000000000..38694b07d03
--- /dev/null
+++ b/handwritten/firestore/.gitignore
@@ -0,0 +1,16 @@
+**/*.log
+**/node_modules
+/.coverage
+/coverage
+/.nyc_output
+/docs/
+/out/
+/build/
+temp/
+types/tsdoc-metadata.json
+system-test/secrets.js
+system-test/*key.json
+*.lock
+.DS_Store
+package-lock.json
+__pycache__
diff --git a/handwritten/firestore/.idea/runConfigurations/Conformance_Tests.xml b/handwritten/firestore/.idea/runConfigurations/Conformance_Tests.xml
new file mode 100644
index 00000000000..c0fe1889f47
--- /dev/null
+++ b/handwritten/firestore/.idea/runConfigurations/Conformance_Tests.xml
@@ -0,0 +1,17 @@
+
+
+ node
+
+ $PROJECT_DIR$/node_modules/mocha
+ $PROJECT_DIR$
+ true
+
+
+
+ bdd
+ --require ts-node/register/type-check --no-cache --no-timeout
+ TEST_FILE
+ $PROJECT_DIR$/dev/conformance/runner.ts
+
+
+
\ No newline at end of file
diff --git a/handwritten/firestore/.idea/runConfigurations/System_Test.xml b/handwritten/firestore/.idea/runConfigurations/System_Test.xml
new file mode 100644
index 00000000000..9dad0feeac9
--- /dev/null
+++ b/handwritten/firestore/.idea/runConfigurations/System_Test.xml
@@ -0,0 +1,17 @@
+
+
+ node
+
+ $PROJECT_DIR$/node_modules/mocha
+ $PROJECT_DIR$
+ true
+
+
+
+ bdd
+ --require ts-node/register/type-check --no-cache --timeout 60000
+ PATTERN
+ $PROJECT_DIR$/dev/system-test/*.js $PROJECT_DIR$/dev/system-test/*.ts
+
+
+
\ No newline at end of file
diff --git a/handwritten/firestore/.idea/runConfigurations/Unit_Tests.xml b/handwritten/firestore/.idea/runConfigurations/Unit_Tests.xml
new file mode 100644
index 00000000000..3a84e9d1013
--- /dev/null
+++ b/handwritten/firestore/.idea/runConfigurations/Unit_Tests.xml
@@ -0,0 +1,17 @@
+
+
+ node
+
+ $PROJECT_DIR$/node_modules/mocha
+ $PROJECT_DIR$/dev
+ true
+
+
+
+ bdd
+ --require ts-node/register/type-check --no-cache --no-timeout
+ PATTERN
+ $PROJECT_DIR$/dev/test/*.js $PROJECT_DIR$/dev/test/**/*.ts
+
+
+
\ No newline at end of file
diff --git a/handwritten/firestore/.jsdoc.js b/handwritten/firestore/.jsdoc.js
new file mode 100644
index 00000000000..e6352a87b4b
--- /dev/null
+++ b/handwritten/firestore/.jsdoc.js
@@ -0,0 +1,55 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ** This file is automatically generated by gapic-generator-typescript. **
+// ** https://github.com/googleapis/gapic-generator-typescript **
+// ** All changes to this file may be overwritten. **
+
+'use strict';
+
+module.exports = {
+ opts: {
+ readme: './README.md',
+ package: './package.json',
+ template: './node_modules/jsdoc-fresh',
+ recurse: true,
+ verbose: true,
+ destination: './docs/'
+ },
+ plugins: [
+ 'plugins/markdown',
+ 'jsdoc-region-tag'
+ ],
+ source: {
+ excludePattern: '(^|\\/|\\\\)[._]',
+ include: [
+ 'build/src',
+ 'build/protos'
+ ],
+ includePattern: '\\.js$'
+ },
+ templates: {
+ copyright: 'Copyright 2025 Google LLC',
+ includeDate: false,
+ sourceFiles: false,
+ systemName: '@google-cloud/firestore',
+ theme: 'lumen',
+ default: {
+ outputSourceFiles: false
+ }
+ },
+ markdown: {
+ idInHeadings: true
+ }
+};
diff --git a/handwritten/firestore/.kokoro/.gitattributes b/handwritten/firestore/.kokoro/.gitattributes
new file mode 100644
index 00000000000..87acd4f484e
--- /dev/null
+++ b/handwritten/firestore/.kokoro/.gitattributes
@@ -0,0 +1 @@
+* linguist-generated=true
diff --git a/handwritten/firestore/.kokoro/common.cfg b/handwritten/firestore/.kokoro/common.cfg
new file mode 100644
index 00000000000..67b4b3be98c
--- /dev/null
+++ b/handwritten/firestore/.kokoro/common.cfg
@@ -0,0 +1,24 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+ define_artifacts {
+ regex: "**/*sponge_log.xml"
+ }
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "nodejs-firestore/handwritten/firestore/.kokoro/trampoline.sh"
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+ key: "TRAMPOLINE_IMAGE"
+ value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user"
+}
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/test.sh"
+}
diff --git a/handwritten/firestore/.kokoro/continuous/node18/common.cfg b/handwritten/firestore/.kokoro/continuous/node18/common.cfg
new file mode 100644
index 00000000000..67b4b3be98c
--- /dev/null
+++ b/handwritten/firestore/.kokoro/continuous/node18/common.cfg
@@ -0,0 +1,24 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+ define_artifacts {
+ regex: "**/*sponge_log.xml"
+ }
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "nodejs-firestore/handwritten/firestore/.kokoro/trampoline.sh"
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+ key: "TRAMPOLINE_IMAGE"
+ value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user"
+}
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/test.sh"
+}
diff --git a/handwritten/firestore/.kokoro/continuous/node18/lint.cfg b/handwritten/firestore/.kokoro/continuous/node18/lint.cfg
new file mode 100644
index 00000000000..3875e4f978e
--- /dev/null
+++ b/handwritten/firestore/.kokoro/continuous/node18/lint.cfg
@@ -0,0 +1,4 @@
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/lint.sh"
+}
diff --git a/handwritten/firestore/.kokoro/continuous/node18/samples-test.cfg b/handwritten/firestore/.kokoro/continuous/node18/samples-test.cfg
new file mode 100644
index 00000000000..1ff4b5ffae5
--- /dev/null
+++ b/handwritten/firestore/.kokoro/continuous/node18/samples-test.cfg
@@ -0,0 +1,12 @@
+# Download resources for system tests (service account key, etc.)
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs"
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/samples-test.sh"
+}
+
+env_vars: {
+ key: "SECRET_MANAGER_KEYS"
+ value: "nodejs-firestore/handwritten/firestore-ci-samples-71b5f8aee66e"
+}
diff --git a/handwritten/firestore/.kokoro/continuous/node18/system-test.cfg b/handwritten/firestore/.kokoro/continuous/node18/system-test.cfg
new file mode 100644
index 00000000000..816a128e619
--- /dev/null
+++ b/handwritten/firestore/.kokoro/continuous/node18/system-test.cfg
@@ -0,0 +1,12 @@
+# Download resources for system tests (service account key, etc.)
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs"
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/system-test.sh"
+}
+
+env_vars: {
+ key: "SECRET_MANAGER_KEYS"
+ value: "java-review_firestore-nodejs-it-6d41b624fec9"
+}
diff --git a/handwritten/firestore/.kokoro/continuous/node18/test.cfg b/handwritten/firestore/.kokoro/continuous/node18/test.cfg
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/handwritten/firestore/.kokoro/docs.sh b/handwritten/firestore/.kokoro/docs.sh
new file mode 100755
index 00000000000..952403faede
--- /dev/null
+++ b/handwritten/firestore/.kokoro/docs.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+export NPM_CONFIG_PREFIX=/home/node/.npm-global
+
+cd $(dirname $0)/..
+
+npm install
+
+npm run docs-test
diff --git a/handwritten/firestore/.kokoro/lint.sh b/handwritten/firestore/.kokoro/lint.sh
new file mode 100755
index 00000000000..b03cb0439a6
--- /dev/null
+++ b/handwritten/firestore/.kokoro/lint.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+export NPM_CONFIG_PREFIX=/home/node/.npm-global
+
+cd $(dirname $0)/..
+
+npm install
+
+# Install and link samples
+if [ -f samples/package.json ]; then
+ cd samples/
+ npm link ../
+ npm install
+ cd ..
+fi
+
+npm run lint
diff --git a/handwritten/firestore/.kokoro/populate-secrets.sh b/handwritten/firestore/.kokoro/populate-secrets.sh
new file mode 100755
index 00000000000..6f9d228859d
--- /dev/null
+++ b/handwritten/firestore/.kokoro/populate-secrets.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Copyright 2020 Google LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;}
+function msg { println "$*" >&2 ;}
+function println { printf '%s\n' "$(now) $*" ;}
+
+
+# Populates requested secrets set in SECRET_MANAGER_KEYS from service account:
+# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com
+SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager"
+msg "Creating folder on disk for secrets: ${SECRET_LOCATION}"
+mkdir -p ${SECRET_LOCATION}
+for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g")
+do
+ msg "Retrieving secret ${key}"
+ docker run --entrypoint=gcloud \
+ --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \
+ gcr.io/google.com/cloudsdktool/cloud-sdk \
+ secrets versions access latest \
+ --project cloud-devrel-kokoro-resources \
+ --secret $key > \
+ "$SECRET_LOCATION/$key"
+ if [[ $? == 0 ]]; then
+ msg "Secret written to ${SECRET_LOCATION}/${key}"
+ else
+ msg "Error retrieving secret ${key}"
+ fi
+done
diff --git a/handwritten/firestore/.kokoro/pre-samples-test.sh b/handwritten/firestore/.kokoro/pre-samples-test.sh
new file mode 100755
index 00000000000..9fcefbcc6e1
--- /dev/null
+++ b/handwritten/firestore/.kokoro/pre-samples-test.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+export GCLOUD_PROJECT=nodejs-firestore/handwritten/firestore-ci
+export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/secret_manager/nodejs-firestore/handwritten/firestore-ci-samples-71b5f8aee66e
diff --git a/handwritten/firestore/.kokoro/pre-system-test.sh b/handwritten/firestore/.kokoro/pre-system-test.sh
new file mode 100755
index 00000000000..a04f4650ad3
--- /dev/null
+++ b/handwritten/firestore/.kokoro/pre-system-test.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+export GCLOUD_PROJECT=java-review
+export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/secret_manager/java-review_firestore-nodejs-it-6d41b624fec9
diff --git a/handwritten/firestore/.kokoro/presubmit/node18/common.cfg b/handwritten/firestore/.kokoro/presubmit/node18/common.cfg
new file mode 100644
index 00000000000..67b4b3be98c
--- /dev/null
+++ b/handwritten/firestore/.kokoro/presubmit/node18/common.cfg
@@ -0,0 +1,24 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+ define_artifacts {
+ regex: "**/*sponge_log.xml"
+ }
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "nodejs-firestore/handwritten/firestore/.kokoro/trampoline.sh"
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+ key: "TRAMPOLINE_IMAGE"
+ value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user"
+}
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/test.sh"
+}
diff --git a/handwritten/firestore/.kokoro/presubmit/node18/samples-test.cfg b/handwritten/firestore/.kokoro/presubmit/node18/samples-test.cfg
new file mode 100644
index 00000000000..1ff4b5ffae5
--- /dev/null
+++ b/handwritten/firestore/.kokoro/presubmit/node18/samples-test.cfg
@@ -0,0 +1,12 @@
+# Download resources for system tests (service account key, etc.)
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs"
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/samples-test.sh"
+}
+
+env_vars: {
+ key: "SECRET_MANAGER_KEYS"
+ value: "nodejs-firestore/handwritten/firestore-ci-samples-71b5f8aee66e"
+}
diff --git a/handwritten/firestore/.kokoro/presubmit/node18/system-test.cfg b/handwritten/firestore/.kokoro/presubmit/node18/system-test.cfg
new file mode 100644
index 00000000000..816a128e619
--- /dev/null
+++ b/handwritten/firestore/.kokoro/presubmit/node18/system-test.cfg
@@ -0,0 +1,12 @@
+# Download resources for system tests (service account key, etc.)
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs"
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/system-test.sh"
+}
+
+env_vars: {
+ key: "SECRET_MANAGER_KEYS"
+ value: "java-review_firestore-nodejs-it-6d41b624fec9"
+}
diff --git a/handwritten/firestore/.kokoro/presubmit/node18/test.cfg b/handwritten/firestore/.kokoro/presubmit/node18/test.cfg
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/handwritten/firestore/.kokoro/presubmit/windows/common.cfg b/handwritten/firestore/.kokoro/presubmit/windows/common.cfg
new file mode 100644
index 00000000000..d6e25e0b1b8
--- /dev/null
+++ b/handwritten/firestore/.kokoro/presubmit/windows/common.cfg
@@ -0,0 +1,2 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
diff --git a/handwritten/firestore/.kokoro/presubmit/windows/test.cfg b/handwritten/firestore/.kokoro/presubmit/windows/test.cfg
new file mode 100644
index 00000000000..603649c2ea9
--- /dev/null
+++ b/handwritten/firestore/.kokoro/presubmit/windows/test.cfg
@@ -0,0 +1,2 @@
+# Use the test file directly
+build_file: "nodejs-firestore/handwritten/firestore/.kokoro/test.bat"
diff --git a/handwritten/firestore/.kokoro/publish.sh b/handwritten/firestore/.kokoro/publish.sh
new file mode 100755
index 00000000000..6a4f1562128
--- /dev/null
+++ b/handwritten/firestore/.kokoro/publish.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+export NPM_CONFIG_PREFIX=/home/node/.npm-global
+
+# Start the releasetool reporter
+python3 -m pip install gcp-releasetool
+python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script
+
+cd $(dirname $0)/..
+
+NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-npm-token-1)
+echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc
+
+npm install
+npm publish --access=public --registry=https://wombat-dressing-room.appspot.com
diff --git a/handwritten/firestore/.kokoro/release/common.cfg b/handwritten/firestore/.kokoro/release/common.cfg
new file mode 100644
index 00000000000..3ba2eb095fe
--- /dev/null
+++ b/handwritten/firestore/.kokoro/release/common.cfg
@@ -0,0 +1,8 @@
+before_action {
+ fetch_keystore {
+ keystore_resource {
+ keystore_config_id: 73713
+ keyname: "yoshi-automation-github-key"
+ }
+ }
+}
diff --git a/handwritten/firestore/.kokoro/release/docs-devsite.cfg b/handwritten/firestore/.kokoro/release/docs-devsite.cfg
new file mode 100644
index 00000000000..d7aee739fd8
--- /dev/null
+++ b/handwritten/firestore/.kokoro/release/docs-devsite.cfg
@@ -0,0 +1,26 @@
+# service account used to publish up-to-date docs.
+before_action {
+ fetch_keystore {
+ keystore_resource {
+ keystore_config_id: 73713
+ keyname: "docuploader_service_account"
+ }
+ }
+}
+
+# doc publications use a Python image.
+env_vars: {
+ key: "TRAMPOLINE_IMAGE"
+ value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user"
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "nodejs-firestore/handwritten/firestore/.kokoro/trampoline.sh"
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/release/docs-devsite.sh"
+}
diff --git a/handwritten/firestore/.kokoro/release/docs-devsite.sh b/handwritten/firestore/.kokoro/release/docs-devsite.sh
new file mode 100755
index 00000000000..b6a4662b84b
--- /dev/null
+++ b/handwritten/firestore/.kokoro/release/docs-devsite.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Copyright 2021 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+if [[ -z "$CREDENTIALS" ]]; then
+ # if CREDENTIALS are explicitly set, assume we're testing locally
+ # and don't set NPM_CONFIG_PREFIX.
+ export NPM_CONFIG_PREFIX=${HOME}/.npm-global
+ export PATH="$PATH:${NPM_CONFIG_PREFIX}/bin"
+ cd $(dirname $0)/../..
+fi
+
+npm install
+npm install --no-save @google-cloud/cloud-rad@^0.4.0
+npx @google-cloud/cloud-rad
diff --git a/handwritten/firestore/.kokoro/release/docs.cfg b/handwritten/firestore/.kokoro/release/docs.cfg
new file mode 100644
index 00000000000..9434a6c931c
--- /dev/null
+++ b/handwritten/firestore/.kokoro/release/docs.cfg
@@ -0,0 +1,26 @@
+# service account used to publish up-to-date docs.
+before_action {
+ fetch_keystore {
+ keystore_resource {
+ keystore_config_id: 73713
+ keyname: "docuploader_service_account"
+ }
+ }
+}
+
+# doc publications use a Python image.
+env_vars: {
+ key: "TRAMPOLINE_IMAGE"
+ value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user"
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "nodejs-firestore/handwritten/firestore/.kokoro/trampoline.sh"
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/release/docs.sh"
+}
diff --git a/handwritten/firestore/.kokoro/release/docs.sh b/handwritten/firestore/.kokoro/release/docs.sh
new file mode 100755
index 00000000000..7102bbf09fa
--- /dev/null
+++ b/handwritten/firestore/.kokoro/release/docs.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+# build jsdocs (Python is installed on the Node 18 docker image).
+if [[ -z "$CREDENTIALS" ]]; then
+ # if CREDENTIALS are explicitly set, assume we're testing locally
+ # and don't set NPM_CONFIG_PREFIX.
+ export NPM_CONFIG_PREFIX=/home/node/.npm-global
+ export PATH="$PATH:/home/node/.npm-global/bin"
+ cd $(dirname $0)/../..
+fi
+npm install
+npm run docs
+
+# create docs.metadata, based on package.json and .repo-metadata.json.
+npm i json@9.0.6 -g
+python3 -m pip install --user gcp-docuploader
+python3 -m docuploader create-metadata \
+ --name=$(cat .repo-metadata.json | json name) \
+ --version=$(cat package.json | json version) \
+ --language=$(cat .repo-metadata.json | json language) \
+ --distribution-name=$(cat .repo-metadata.json | json distribution_name) \
+ --product-page=$(cat .repo-metadata.json | json product_documentation) \
+ --github-repository=$(cat .repo-metadata.json | json repo) \
+ --issue-tracker=$(cat .repo-metadata.json | json issue_tracker)
+cp docs.metadata ./docs/docs.metadata
+
+# deploy the docs.
+if [[ -z "$CREDENTIALS" ]]; then
+ CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account
+fi
+if [[ -z "$BUCKET" ]]; then
+ BUCKET=docs-staging
+fi
+python3 -m docuploader upload ./docs --credentials $CREDENTIALS --staging-bucket $BUCKET
diff --git a/handwritten/firestore/.kokoro/release/publish.cfg b/handwritten/firestore/.kokoro/release/publish.cfg
new file mode 100644
index 00000000000..64b9fd038a5
--- /dev/null
+++ b/handwritten/firestore/.kokoro/release/publish.cfg
@@ -0,0 +1,69 @@
+# Get npm token from Keystore
+before_action {
+ fetch_keystore {
+ keystore_resource {
+ keystore_config_id: 73713
+ keyname: "google-cloud-npm-token-1"
+ }
+ }
+}
+
+before_action {
+ fetch_keystore {
+ keystore_resource {
+ keystore_config_id: 73713
+ keyname: "yoshi-automation-github-key"
+ }
+ }
+}
+
+before_action {
+ fetch_keystore {
+ keystore_resource {
+ keystore_config_id: 73713
+ keyname: "docuploader_service_account"
+ }
+ }
+}
+
+# Fetch magictoken to use with Magic Github Proxy
+before_action {
+ fetch_keystore {
+ keystore_resource {
+ keystore_config_id: 73713
+ keyname: "releasetool-magictoken"
+ }
+ }
+}
+
+# Fetch api key to use with Magic Github Proxy
+before_action {
+ fetch_keystore {
+ keystore_resource {
+ keystore_config_id: 73713
+ keyname: "magic-github-proxy-api-key"
+ }
+ }
+}
+
+env_vars: {
+ key: "SECRET_MANAGER_KEYS"
+ value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem"
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "nodejs-firestore/handwritten/firestore/.kokoro/trampoline.sh"
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+ key: "TRAMPOLINE_IMAGE"
+ value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user"
+}
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/nodejs-firestore/handwritten/firestore/.kokoro/publish.sh"
+}
diff --git a/handwritten/firestore/.kokoro/samples-test.sh b/handwritten/firestore/.kokoro/samples-test.sh
new file mode 100755
index 00000000000..b0d655d6510
--- /dev/null
+++ b/handwritten/firestore/.kokoro/samples-test.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+export NPM_CONFIG_PREFIX=/home/node/.npm-global
+
+# Setup service account credentials.
+export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json
+export GCLOUD_PROJECT=node-gcloud-ci
+
+cd $(dirname $0)/..
+
+# Run a pre-test hook, if a pre-samples-test.sh is in the project
+if [ -f .kokoro/pre-samples-test.sh ]; then
+ set +x
+ . .kokoro/pre-samples-test.sh
+ set -x
+fi
+
+if [ -f samples/package.json ]; then
+ npm install
+
+ # Install and link samples
+ cd samples/
+ npm link ../
+ npm install
+ cd ..
+ # If tests are running against main, configure FlakyBot
+ # to open issues on failures:
+ if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then
+ export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml
+ export MOCHA_REPORTER=xunit
+ cleanup() {
+ chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot
+ $KOKORO_GFILE_DIR/linux_amd64/flakybot
+ }
+ trap cleanup EXIT HUP
+ fi
+
+ npm run samples-test
+fi
+
+# codecov combines coverage across integration and unit tests. Include
+# the logic below for any environment you wish to collect coverage for:
+COVERAGE_NODE=18
+if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then
+ NYC_BIN=./node_modules/nyc/bin/nyc.js
+ if [ -f "$NYC_BIN" ]; then
+ $NYC_BIN report || true
+ fi
+ bash $KOKORO_GFILE_DIR/codecov.sh
+else
+ echo "coverage is only reported for Node $COVERAGE_NODE"
+fi
diff --git a/handwritten/firestore/.kokoro/system-test.sh b/handwritten/firestore/.kokoro/system-test.sh
new file mode 100755
index 00000000000..f5569a51b35
--- /dev/null
+++ b/handwritten/firestore/.kokoro/system-test.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+export NPM_CONFIG_PREFIX=/home/node/.npm-global
+
+# Setup service account credentials.
+export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json
+export GCLOUD_PROJECT=node-gcloud-ci
+
+cd $(dirname $0)/..
+
+# Run a pre-test hook, if a pre-system-test.sh is in the project
+if [ -f .kokoro/pre-system-test.sh ]; then
+ set +x
+ . .kokoro/pre-system-test.sh
+ set -x
+fi
+
+npm install
+
+# If tests are running against main, configure FlakyBot
+# to open issues on failures:
+if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then
+ export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml
+ export MOCHA_REPORTER=xunit
+ cleanup() {
+ chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot
+ $KOKORO_GFILE_DIR/linux_amd64/flakybot
+ }
+ trap cleanup EXIT HUP
+fi
+
+npm run system-test
+
+# codecov combines coverage across integration and unit tests. Include
+# the logic below for any environment you wish to collect coverage for:
+COVERAGE_NODE=18
+if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then
+ NYC_BIN=./node_modules/nyc/bin/nyc.js
+ if [ -f "$NYC_BIN" ]; then
+ $NYC_BIN report || true
+ fi
+ bash $KOKORO_GFILE_DIR/codecov.sh
+else
+ echo "coverage is only reported for Node $COVERAGE_NODE"
+fi
diff --git a/handwritten/firestore/.kokoro/test.bat b/handwritten/firestore/.kokoro/test.bat
new file mode 100644
index 00000000000..caf825656c2
--- /dev/null
+++ b/handwritten/firestore/.kokoro/test.bat
@@ -0,0 +1,33 @@
+@rem Copyright 2018 Google LLC. All rights reserved.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem http://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+
+@echo "Starting Windows build"
+
+cd /d %~dp0
+cd ..
+
+@rem npm path is not currently set in our image, we should fix this next time
+@rem we upgrade Node.js in the image:
+SET PATH=%PATH%;/cygdrive/c/Program Files/nodejs/npm
+
+call nvm use 18
+call which node
+
+call npm install || goto :error
+call npm run test || goto :error
+
+goto :EOF
+
+:error
+exit /b 1
diff --git a/handwritten/firestore/.kokoro/test.sh b/handwritten/firestore/.kokoro/test.sh
new file mode 100755
index 00000000000..e1334dcaa5b
--- /dev/null
+++ b/handwritten/firestore/.kokoro/test.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+export NPM_CONFIG_PREFIX=/home/node/.npm-global
+
+cd $(dirname $0)/..
+
+npm install
+# If tests are running against main, configure FlakyBot
+# to open issues on failures:
+if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then
+ export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml
+ export MOCHA_REPORTER=xunit
+ cleanup() {
+ chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot
+ $KOKORO_GFILE_DIR/linux_amd64/flakybot
+ }
+ trap cleanup EXIT HUP
+fi
+npm test
+
+# codecov combines coverage across integration and unit tests. Include
+# the logic below for any environment you wish to collect coverage for:
+COVERAGE_NODE=18
+if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then
+ NYC_BIN=./node_modules/nyc/bin/nyc.js
+ if [ -f "$NYC_BIN" ]; then
+ $NYC_BIN report || true
+ fi
+ bash $KOKORO_GFILE_DIR/codecov.sh
+else
+ echo "coverage is only reported for Node $COVERAGE_NODE"
+fi
diff --git a/handwritten/firestore/.kokoro/trampoline.sh b/handwritten/firestore/.kokoro/trampoline.sh
new file mode 100755
index 00000000000..ef9cb4a426d
--- /dev/null
+++ b/handwritten/firestore/.kokoro/trampoline.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+# Copyright 2017 Google Inc.
+
+# Auto-injected conditional check
+# Check if the package directory has changes. If not, skip tests.
+if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then
+ # The package path is hardcoded during migration
+ RELATIVE_PKG_PATH="handwritten/firestore"
+
+ echo "Checking for changes in ${RELATIVE_PKG_PATH}..."
+
+ # Determine the diff range based on the CI system/event
+ # Safe default: HEAD~1..HEAD
+ DIFF_RANGE="HEAD~1..HEAD"
+
+ if git diff --quiet "${DIFF_RANGE}" -- "${RELATIVE_PKG_PATH}"; then
+ echo "No changes detected in ${RELATIVE_PKG_PATH}. Skipping tests."
+ exit 0
+ else
+ echo "Changes detected in ${RELATIVE_PKG_PATH}. Proceeding with tests."
+ fi
+fi
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+# Always run the cleanup script, regardless of the success of bouncing into
+# the container.
+function cleanup() {
+ chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
+ ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
+ echo "cleanup";
+}
+trap cleanup EXIT
+
+$(dirname $0)/populate-secrets.sh # Secret Manager secrets.
+python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py"
diff --git a/handwritten/firestore/.mocharc.js b/handwritten/firestore/.mocharc.js
new file mode 100644
index 00000000000..2431859019f
--- /dev/null
+++ b/handwritten/firestore/.mocharc.js
@@ -0,0 +1,29 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+const config = {
+ "enable-source-maps": true,
+ "throw-deprecation": true,
+ "timeout": 10000,
+ "recursive": true
+}
+if (process.env.MOCHA_THROW_DEPRECATION === 'false') {
+ delete config['throw-deprecation'];
+}
+if (process.env.MOCHA_REPORTER) {
+ config.reporter = process.env.MOCHA_REPORTER;
+}
+if (process.env.MOCHA_REPORTER_OUTPUT) {
+ config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`;
+}
+module.exports = config
diff --git a/handwritten/firestore/.nycrc b/handwritten/firestore/.nycrc
new file mode 100644
index 00000000000..b18d5472b62
--- /dev/null
+++ b/handwritten/firestore/.nycrc
@@ -0,0 +1,24 @@
+{
+ "report-dir": "./.coverage",
+ "reporter": ["text", "lcov"],
+ "exclude": [
+ "**/*-test",
+ "**/.coverage",
+ "**/apis",
+ "**/benchmark",
+ "**/conformance",
+ "**/docs",
+ "**/samples",
+ "**/scripts",
+ "**/protos",
+ "**/test",
+ "**/*.d.ts",
+ ".jsdoc.js",
+ "**/.jsdoc.js",
+ "karma.conf.js",
+ "webpack-tests.config.js",
+ "webpack.config.js"
+ ],
+ "exclude-after-remap": false,
+ "all": true
+}
diff --git a/handwritten/firestore/.prettierignore b/handwritten/firestore/.prettierignore
new file mode 100644
index 00000000000..9340ad9b86d
--- /dev/null
+++ b/handwritten/firestore/.prettierignore
@@ -0,0 +1,6 @@
+**/node_modules
+**/coverage
+test/fixtures
+build/
+docs/
+protos/
diff --git a/handwritten/firestore/.prettierrc.js b/handwritten/firestore/.prettierrc.js
new file mode 100644
index 00000000000..d2eddc2ed89
--- /dev/null
+++ b/handwritten/firestore/.prettierrc.js
@@ -0,0 +1,17 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+module.exports = {
+ ...require('gts/.prettierrc.json')
+}
diff --git a/handwritten/firestore/.readme-partials.yaml b/handwritten/firestore/.readme-partials.yaml
new file mode 100644
index 00000000000..60b13dae8cf
--- /dev/null
+++ b/handwritten/firestore/.readme-partials.yaml
@@ -0,0 +1,66 @@
+introduction: |-
+ This is the Node.js Server SDK for [Google Cloud Firestore](https://firebase.google.com/docs/firestore/). Google Cloud Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development.
+
+ This Cloud Firestore Server SDK uses Google’s Cloud Identity and Access Management for authentication and should only be used in trusted environments. Your Cloud Identity credentials allow you bypass all access restrictions and provide read and write access to all data in your Cloud Firestore project.
+
+ The Cloud Firestore Server SDKs are designed to manage the full set of data in your Cloud Firestore project and work best with reliable network connectivity. Data operations performed via these SDKs directly access the Cloud Firestore backend and all document reads and writes are optimized for high throughput.
+
+ Applications that use Google's Server SDKs should not be used in end-user environments, such as on phones or on publicly hosted websites. If you are developing a Web or Node.js application that accesses Cloud Firestore on behalf of end users, use the firebase Client SDK.
+
+ **Note:** This Cloud Firestore Server SDK does not support Firestore databases created in [Datastore mode](https://cloud.google.com/datastore/docs/firestore-or-datastore#in_datastore_mode). To access these databases, use the [Datastore SDK](https://www.npmjs.com/package/@google-cloud/datastore).
+
+body: |-
+
+ ### Using the client library with Pipelines
+
+ ```javascript
+
+ const {Firestore} = require('@google-cloud/firestore');
+
+ // Require/import Pipelines from '@google-cloud/firestore/pipelines'
+ const {field} = require('@google-cloud/firestore/pipelines');
+
+ // Create a new client
+ const firestore = new Firestore({
+ projectId: 'firestore-sdk-nightly',
+ databaseId: 'enterprise'
+ });
+
+ async function pipelinesQuickstart() {
+ // Obtain a collection reference.
+ const collection = firestore.collection('books');
+
+ // Enter new documents into the document.
+ await collection.add({
+ "title": "Whispers of the Cobalt Sea",
+ "price": 12.99,
+ "author": "Elara Vance",
+ "yearPublished": 2023
+ });
+ await collection.add({
+ "title": "The Antigravity Cat's Guide to Napping",
+ "price": 24.50,
+ "author": "Mittens the IV",
+ "yearPublished": 2026
+ });
+ console.log('Entered new documents into the collection.');
+
+ // Define a Pipeline query that selects books published this century,
+ // orders them by price, and computes a discounted price (20% off).
+ const pipeline = firestore.pipeline().collection('books')
+ .where(field('yearPublished').greaterThanOrEqual(2000))
+ .sort(field('price').ascending())
+ .select('title', 'author', field('price').multiply(0.8).as('discountedPrice'));
+
+ // Execute the pipeline
+ const pipelineSnapshot = await pipeline.execute();
+ console.log('Executed the Pipeline.');
+
+ console.log('Results:');
+ pipelineSnapshot.results.forEach(pipelineResult=> {
+ console.log(pipelineResult.data());
+ });
+ }
+ pipelinesQuickstart();
+
+ ```
diff --git a/handwritten/firestore/.repo-metadata.json b/handwritten/firestore/.repo-metadata.json
new file mode 100644
index 00000000000..c6bf8fe8cb8
--- /dev/null
+++ b/handwritten/firestore/.repo-metadata.json
@@ -0,0 +1,17 @@
+{
+ "codeowner_team": "@googleapis/firestore-team @googleapis/cloud-sdk-nodejs-team",
+ "language": "nodejs",
+ "api_id": "firestore.googleapis.com",
+ "name_pretty": "Cloud Firestore",
+ "requires_billing ": false,
+ "default_version": "v1",
+ "product_documentation": "https://cloud.google.com/firestore",
+ "name": "firestore",
+ "issue_tracker": "https://issuetracker.google.com/savedsearches/5337669",
+ "distribution_name": "@google-cloud/firestore",
+ "repo": "googleapis/google-cloud-node",
+ "client_documentation": "https://cloud.google.com/nodejs/docs/reference/firestore/latest",
+ "release_level": "stable",
+ "api_shortname": "firestore",
+ "library_type": "GAPIC_COMBO"
+}
diff --git a/handwritten/firestore/.trampolinerc b/handwritten/firestore/.trampolinerc
new file mode 100644
index 00000000000..2af668a017d
--- /dev/null
+++ b/handwritten/firestore/.trampolinerc
@@ -0,0 +1,52 @@
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Template for .trampolinerc
+
+# Add required env vars here.
+required_envvars+=(
+)
+
+# Add env vars which are passed down into the container here.
+pass_down_envvars+=(
+ "AUTORELEASE_PR"
+ "VERSION"
+)
+
+# Prevent unintentional override on the default image.
+if [[ "${TRAMPOLINE_IMAGE_UPLOAD:-false}" == "true" ]] && \
+ [[ -z "${TRAMPOLINE_IMAGE:-}" ]]; then
+ echo "Please set TRAMPOLINE_IMAGE if you want to upload the Docker image."
+ exit 1
+fi
+
+# Define the default value if it makes sense.
+if [[ -z "${TRAMPOLINE_IMAGE_UPLOAD:-}" ]]; then
+ TRAMPOLINE_IMAGE_UPLOAD=""
+fi
+
+if [[ -z "${TRAMPOLINE_IMAGE:-}" ]]; then
+ TRAMPOLINE_IMAGE=""
+fi
+
+if [[ -z "${TRAMPOLINE_DOCKERFILE:-}" ]]; then
+ TRAMPOLINE_DOCKERFILE=""
+fi
+
+if [[ -z "${TRAMPOLINE_BUILD_FILE:-}" ]]; then
+ TRAMPOLINE_BUILD_FILE=""
+fi
+
+# Secret Manager secrets.
+source ${PROJECT_ROOT}/handwritten/firestore/.kokoro/populate-secrets.sh
diff --git a/handwritten/firestore/CHANGELOG.md b/handwritten/firestore/CHANGELOG.md
new file mode 100644
index 00000000000..2b76943dc18
--- /dev/null
+++ b/handwritten/firestore/CHANGELOG.md
@@ -0,0 +1,1472 @@
+# Changelog
+
+[npm history][1]
+
+[1]: https://www.npmjs.com/package/@google-cloud/firestore?activeTab=versions
+
+## [8.3.0](https://github.com/googleapis/nodejs-firestore/compare/v8.2.0...v8.3.0) (2026-02-02)
+
+
+### Features
+
+* Add support for `regexFind` and `regexFindAll` ([#2474](https://github.com/googleapis/nodejs-firestore/issues/2474)) ([52800a2](https://github.com/googleapis/nodejs-firestore/commit/52800a2c6af9079277eba19f776880c85ae52380))
+
+## [8.2.0](https://github.com/googleapis/nodejs-firestore/compare/v8.1.0...v8.2.0) (2026-01-09)
+
+
+### Features
+
+* Pipelines preview ([#2450](https://github.com/googleapis/nodejs-firestore/issues/2450)) ([c80e618](https://github.com/googleapis/nodejs-firestore/commit/c80e6181709b72c943a445eb0a5a2fa63d2776dd))
+
+## [8.1.0](https://github.com/googleapis/nodejs-firestore/compare/v8.0.0...v8.1.0) (2025-12-22)
+
+
+### Features
+
+* [GAPIC] add Firestore CloneDatabase support ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] add methods from gax to cache proto root and process custom error details ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] add protobufjs 2023 edition support ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] add request/response debug logging to gapics, update templates to gax 5 and node 18 ([#1671](https://github.com/googleapis/nodejs-firestore/issues/1671)) ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] add the UserCreds API ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] await/catch promises, and update listOperationsAsync return type ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] Expose tags field in Database and RestoreDatabaseRequest public protos ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] new Firestore index modes and Database Editions ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] publish the pipelines API to the stable branch ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] selective gapic support for typescript generation ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* Adding gcp resource name span attribute ([#2454](https://github.com/googleapis/nodejs-firestore/issues/2454)) ([bc0c73d](https://github.com/googleapis/nodejs-firestore/commit/bc0c73db1fc840bf34115ffab20d7b48eb0a76e5))
+
+
+### Bug Fixes
+
+* [GAPIC] add json files to tsconfig templates ([#1692](https://github.com/googleapis/nodejs-firestore/issues/1692)) (ba6be1d) ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] catch dangling promises ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+* [GAPIC] distinguish plural and singular path templates ([a0c74b7](https://github.com/googleapis/nodejs-firestore/commit/a0c74b78a0a5896004126ba827a02f4c8d374fd0))
+
+## [8.0.0](https://github.com/googleapis/nodejs-firestore/compare/v7.11.6...v8.0.0) (2025-10-29)
+
+
+### ⚠ BREAKING CHANGES
+
+* Update WithFieldData and PartialWithFieldData to ignore methods on types ([#2294](https://github.com/googleapis/nodejs-firestore/issues/2294))
+* migrate to Node 18 ([#2399](https://github.com/googleapis/nodejs-firestore/issues/2399))
+
+### Features
+
+* Support for index signatures in UpdateData<T> ([#1953](https://github.com/googleapis/nodejs-firestore/issues/1953)) ([afa206d](https://github.com/googleapis/nodejs-firestore/commit/afa206d17ce2d0905ce02e723c2c92bea368ba3a))
+
+
+### Bug Fixes
+
+* Update WithFieldData and PartialWithFieldData to ignore methods on types ([#2294](https://github.com/googleapis/nodejs-firestore/issues/2294)) ([481430f](https://github.com/googleapis/nodejs-firestore/commit/481430ffc12bdaf3e3a92aa89a2ce389756ce9da))
+
+
+### Miscellaneous Chores
+
+* Migrate to Node 18 ([#2399](https://github.com/googleapis/nodejs-firestore/issues/2399)) ([e5c3118](https://github.com/googleapis/nodejs-firestore/commit/e5c31184325b84ef8dcb456ec0a7a4807038c838))
+
+## [7.11.6](https://github.com/googleapis/nodejs-firestore/compare/v7.11.5...v7.11.6) (2025-09-26)
+
+
+### Bug Fixes
+
+* Pool.ts: add even more logging ([c508d1b](https://github.com/googleapis/nodejs-firestore/commit/c508d1bd653f5d2b9bbe78236fac15e999c27e69))
+
+## [7.11.5](https://github.com/googleapis/nodejs-firestore/compare/v7.11.4...v7.11.5) (2025-09-22)
+
+
+### Bug Fixes
+
+* Pool.ts: add more detailed logging for client garbage collection ([#2420](https://github.com/googleapis/nodejs-firestore/issues/2420)) ([1bbca46](https://github.com/googleapis/nodejs-firestore/commit/1bbca46ff2a6ea98b52a83ff7dae6092e69b044d))
+
+## [7.11.4](https://github.com/googleapis/nodejs-firestore/compare/v7.11.3...v7.11.4) (2025-09-16)
+
+
+### Bug Fixes
+
+* Improve debug logging for the internal client pool. Added client IDs to debug log statements for client management. ([99918f1](https://github.com/googleapis/nodejs-firestore/commit/99918f1794adee706c4f2685cd3f8aea6dff895e))
+
+## [7.11.3](https://github.com/googleapis/nodejs-firestore/compare/v7.11.2...v7.11.3) (2025-07-09)
+
+
+### Bug Fixes
+
+* Improve performance of the UTF-8 string comparison logic ([#2380](https://github.com/googleapis/nodejs-firestore/issues/2380)) ([bc6a03e](https://github.com/googleapis/nodejs-firestore/commit/bc6a03e2b44e740b32676d7d0bec07feaa509b5b))
+
+## [7.11.2](https://github.com/googleapis/nodejs-firestore/compare/v7.11.1...v7.11.2) (2025-06-19)
+
+
+### Bug Fixes
+
+* Firestore Client caching stub in bad state issue ([#2365](https://github.com/googleapis/nodejs-firestore/issues/2365)) ([04ad0a4](https://github.com/googleapis/nodejs-firestore/commit/04ad0a4c0fb370db8aeae87dc6ab8bd06eafedd4))
+
+## [7.11.1](https://github.com/googleapis/nodejs-firestore/compare/v7.11.0...v7.11.1) (2025-05-02)
+
+
+### Bug Fixes
+
+* Aggregate query readtime bug ([#2331](https://github.com/googleapis/nodejs-firestore/issues/2331)) ([9ac0394](https://github.com/googleapis/nodejs-firestore/commit/9ac0394df78619bf1d6b7907a364342796a4f0fb))
+* Bump default deadline on CreateDatabase and RestoreDatabase to 2 minutes ([#2274](https://github.com/googleapis/nodejs-firestore/issues/2274)) ([d559080](https://github.com/googleapis/nodejs-firestore/commit/d559080a0f436927108ec69c2910af4e8246a8b0))
+* Close default BulkWriter upon terminate. ([#2276](https://github.com/googleapis/nodejs-firestore/issues/2276)) ([1e714a8](https://github.com/googleapis/nodejs-firestore/commit/1e714a8b7952b65872e65533cfe74d303dfabe20))
+* Correctly escape field paths with multiple backslashes or backticks ([#2259](https://github.com/googleapis/nodejs-firestore/issues/2259)) ([#2261](https://github.com/googleapis/nodejs-firestore/issues/2261)) ([7056ba7](https://github.com/googleapis/nodejs-firestore/commit/7056ba76040b9369d86c57838ef938c9d9ef73d8))
+* Do not send page size with auto-paginate. Fixes warnings in listCollections and listDocuments. ([#2336](https://github.com/googleapis/nodejs-firestore/issues/2336)) ([844b4ca](https://github.com/googleapis/nodejs-firestore/commit/844b4ca9c209e649565d122940858409d808baa6))
+* Finalize fixing typings for headers in generator ([#2287](https://github.com/googleapis/nodejs-firestore/issues/2287)) ([c6c85b6](https://github.com/googleapis/nodejs-firestore/commit/c6c85b66a25b56bd23c19285302a740b0ca85d25))
+* Prevent crashes if an inactive stream receives an error. ([#2283](https://github.com/googleapis/nodejs-firestore/issues/2283)) ([f58fe79](https://github.com/googleapis/nodejs-firestore/commit/f58fe791c7afc59087e2555f7208cdb611470d80))
+* Remove unused "long" dependency from firestore proto ([#2324](https://github.com/googleapis/nodejs-firestore/issues/2324)) ([5937b93](https://github.com/googleapis/nodejs-firestore/commit/5937b93aa1aacd2f63bf1678ec569c504cf0b186))
+* Sort document reference by long type id ([#2257](https://github.com/googleapis/nodejs-firestore/issues/2257)) ([3fd0de9](https://github.com/googleapis/nodejs-firestore/commit/3fd0de93076adfe17aaae9e0a9b732bcae52d594))
+* Sort strings in UTF-8 encoded byte order ([#2275](https://github.com/googleapis/nodejs-firestore/issues/2275)) ([a2950e0](https://github.com/googleapis/nodejs-firestore/commit/a2950e0b6464012f0e6c5703d0d28c2175cd35a2))
+* Use lazy encoding for utf-8 encoded string comparison ([#2299](https://github.com/googleapis/nodejs-firestore/issues/2299)) ([e8777e1](https://github.com/googleapis/nodejs-firestore/commit/e8777e12db41096c3945afd3be7905c1c029493c))
+
+## [7.11.0](https://github.com/googleapis/nodejs-firestore/compare/v7.10.0...v7.11.0) (2024-12-05)
+
+
+### Features
+
+* [proto] add Database.CmekConfig and Database.cmek_config (information about CMEK enablement) ([2779896](https://github.com/googleapis/nodejs-firestore/commit/27798966c5d72616fc0cee109e1d28f693c9f5f1))
+* [proto] add Database.delete_time (the time a database was deleted, if it ever was) ([2779896](https://github.com/googleapis/nodejs-firestore/commit/27798966c5d72616fc0cee109e1d28f693c9f5f1))
+* [proto] add Database.previous_id (if a database was deleted, what ID it was using beforehand) ([2779896](https://github.com/googleapis/nodejs-firestore/commit/27798966c5d72616fc0cee109e1d28f693c9f5f1))
+* [proto] add Database.SourceInfo and Database.source_info (information about database provenance, specifically for restored databases) ([2779896](https://github.com/googleapis/nodejs-firestore/commit/27798966c5d72616fc0cee109e1d28f693c9f5f1))
+* [proto] allow specifying an encryption_config when restoring a database ([2779896](https://github.com/googleapis/nodejs-firestore/commit/27798966c5d72616fc0cee109e1d28f693c9f5f1))
+* Enable tracing via OpenTelemetry. ([#2218](https://github.com/googleapis/nodejs-firestore/issues/2218)) ([1ddb62e](https://github.com/googleapis/nodejs-firestore/commit/1ddb62ed67e93ca2c265556bb5e504d207a639a8))
+* Support `fire-admin` tag for Admin Node SDK ([#2238](https://github.com/googleapis/nodejs-firestore/issues/2238)) ([#2252](https://github.com/googleapis/nodejs-firestore/issues/2252)) ([1339dc2](https://github.com/googleapis/nodejs-firestore/commit/1339dc20e3ffc065f5f79a82baaa67deda76fb36))
+
+
+### Bug Fixes
+
+* Use correct limit when retrying a limit query stream with a cursor ([#2203](https://github.com/googleapis/nodejs-firestore/issues/2203)) ([ab94092](https://github.com/googleapis/nodejs-firestore/commit/ab94092c2375501dd2998a458fc8a449793c9e69))
+
+## [7.10.0](https://github.com/googleapis/nodejs-firestore/compare/v7.9.0...v7.10.0) (2024-09-05)
+
+
+### Features
+
+* Expose proto changes for the bulk delete api ([23ce891](https://github.com/googleapis/nodejs-firestore/commit/23ce89175ce315648ce9af3994cba0decc48ba47))
+* Expose the proto changes to support FindNearest.distance_result_field parameter and the FindNearest.distance_threshold parameter ([23ce891](https://github.com/googleapis/nodejs-firestore/commit/23ce89175ce315648ce9af3994cba0decc48ba47))
+* Return computed distance and set distance thresholds on VectorQueries ([#2090](https://github.com/googleapis/nodejs-firestore/issues/2090)) ([b5ca84f](https://github.com/googleapis/nodejs-firestore/commit/b5ca84f076ca0668e90ca3fc7dd878f732ccd956))
+
+## [7.9.0](https://github.com/googleapis/nodejs-firestore/compare/v7.8.0...v7.9.0) (2024-06-25)
+
+
+### Features
+
+* Update FirebaseFirestore.v1 and FirebaseFirestore.v1beta1 auto-gen types ([6732d4d](https://github.com/googleapis/nodejs-firestore/commit/6732d4da3c5ea851dccb0515757fbfb521f21410))
+
+## [7.8.0](https://github.com/googleapis/nodejs-firestore/compare/v7.7.0...v7.8.0) (2024-05-28)
+
+
+### Features
+
+* Query profiling for VectorQuery ([d406f14](https://github.com/googleapis/nodejs-firestore/commit/d406f14612a4890e405913aadc75c7ee22993f2b))
+* Update Nodejs generator to send API versions in headers for GAPICs ([#2041](https://github.com/googleapis/nodejs-firestore/issues/2041)) ([6dbe4b0](https://github.com/googleapis/nodejs-firestore/commit/6dbe4b0baac261f03f9032765b375938ce5e46d7))
+
+## [7.7.0](https://github.com/googleapis/nodejs-firestore/compare/v7.6.0...v7.7.0) (2024-05-07)
+
+
+### Features
+
+* Add several fields to manage state of database encryption update ([5811492](https://github.com/googleapis/nodejs-firestore/commit/5811492357c7b66324839c02bcbf45a5b6d6d7e7))
+* Lazy-started transactions ([#2017](https://github.com/googleapis/nodejs-firestore/issues/2017)) ([2c726a1](https://github.com/googleapis/nodejs-firestore/commit/2c726a176407c45f519846052469e1bbbbc24750))
+
+
+### Bug Fixes
+
+* Nonblocking rollback ([#2039](https://github.com/googleapis/nodejs-firestore/issues/2039)) ([52099c8](https://github.com/googleapis/nodejs-firestore/commit/52099c8eb8ce8aba0ab5aee9f3dd4c4a59c2afd4))
+* Upgrade the `google-gax` dependency version. ([#2040](https://github.com/googleapis/nodejs-firestore/issues/2040)) ([0b9efa6](https://github.com/googleapis/nodejs-firestore/commit/0b9efa6d5a3d46ad2f084aef58c529e710c7f596))
+
+## [7.6.0](https://github.com/googleapis/nodejs-firestore/compare/v7.5.0...v7.6.0) (2024-04-02)
+
+
+### Features
+
+* Vector Search ([#2006](https://github.com/googleapis/nodejs-firestore/issues/2006)) ([e906b42](https://github.com/googleapis/nodejs-firestore/commit/e906b4260da11fe5a1c34ae5f68d9f5717a99dab))
+
+## [7.5.0](https://github.com/googleapis/nodejs-firestore/compare/v7.4.0...v7.5.0) (2024-03-25)
+
+
+### Features
+
+* Protos and autogen client for vector ([#2027](https://github.com/googleapis/nodejs-firestore/issues/2027)) ([c65cef0](https://github.com/googleapis/nodejs-firestore/commit/c65cef04332e20be82129d0c49396485be683585))
+* Query Profile ([#2014](https://github.com/googleapis/nodejs-firestore/issues/2014)) ([9a45ec8](https://github.com/googleapis/nodejs-firestore/commit/9a45ec89fb3a8d9814bc186d7d494f5859946ffa))
+
+## [7.4.0](https://github.com/googleapis/nodejs-firestore/compare/v7.3.1...v7.4.0) (2024-03-15)
+
+
+### Features
+
+* A new message `Backup` is added ([#2021](https://github.com/googleapis/nodejs-firestore/issues/2021)) ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `BackupSchedule` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `CreateBackupScheduleRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `DailyRecurrence` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `DeleteBackupRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `DeleteBackupScheduleRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `GetBackupRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `GetBackupScheduleRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `ListBackupSchedulesRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `ListBackupSchedulesResponse` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `ListBackupsRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `ListBackupsResponse` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `RestoreDatabaseMetadata` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `RestoreDatabaseRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `UpdateBackupScheduleRequest` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new message `WeeklyRecurrence` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `CreateBackupSchedule` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `DeleteBackup` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `DeleteBackupSchedule` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `GetBackup` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `GetBackupSchedule` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `ListBackups` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `ListBackupSchedules` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `RestoreDatabase` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new method `UpdateBackupSchedule` is added to service `FirestoreAdmin` ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new resource_definition `firestore.googleapis.com/Backup` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* A new resource_definition `firestore.googleapis.com/BackupSchedule` is added ([6bced86](https://github.com/googleapis/nodejs-firestore/commit/6bced86eabd143947e94e83872f20d7ed9d964dc))
+* Add new types ExplainOptions, ExplainMetrics, PlanSummary, ExecutionStats ([#2013](https://github.com/googleapis/nodejs-firestore/issues/2013)) ([e598b9d](https://github.com/googleapis/nodejs-firestore/commit/e598b9daf628cbc54dc10dab80bb0f46e2a3e2a2))
+
+
+### Bug Fixes
+
+* ReadOnly transaction do not need to commit not rollback. ([#2007](https://github.com/googleapis/nodejs-firestore/issues/2007)) ([6a220a6](https://github.com/googleapis/nodejs-firestore/commit/6a220a6f6563903673066576f09ecf405c53f87b))
+* Update service definitions ([#2016](https://github.com/googleapis/nodejs-firestore/issues/2016)) ([ea4b6d0](https://github.com/googleapis/nodejs-firestore/commit/ea4b6d05383751f9a089958a20c1dd56419bc66d))
+
+## [7.3.1](https://github.com/googleapis/nodejs-firestore/compare/v7.3.0...v7.3.1) (2024-03-04)
+
+
+### Bug Fixes
+
+* Add client library version to headers ([#2003](https://github.com/googleapis/nodejs-firestore/issues/2003)) ([8799032](https://github.com/googleapis/nodejs-firestore/commit/8799032d8cc39adc774fe21b7eb70f96a3a18fda))
+* Add missing type for exposed database id ([#1996](https://github.com/googleapis/nodejs-firestore/issues/1996)) ([e967279](https://github.com/googleapis/nodejs-firestore/commit/e967279cfe532ae3375ae9dcb94f4a65af5ffb42))
+* Optimize Transaction PITR ([#2002](https://github.com/googleapis/nodejs-firestore/issues/2002)) ([2f08612](https://github.com/googleapis/nodejs-firestore/commit/2f0861296151f7b0094501e4a9ff6fc4154d52a4))
+* Revert changes to streaming retries ([d964a13](https://github.com/googleapis/nodejs-firestore/commit/d964a13818e6bc4be6547e88ffbe16be1a6ceeeb))
+
+## [7.3.0](https://github.com/googleapis/nodejs-firestore/compare/v7.2.0...v7.3.0) (2024-01-31)
+
+
+### Features
+
+* Expose the undeliverable_first_gen_event.proto ([b4f7d60](https://github.com/googleapis/nodejs-firestore/commit/b4f7d6015b50f1da6afeae0b4215be416596cc69))
+
+
+### Bug Fixes
+
+* Allow an explicit MustExist precondition for update ([#1985](https://github.com/googleapis/nodejs-firestore/issues/1985)) ([99d60a6](https://github.com/googleapis/nodejs-firestore/commit/99d60a6f87b70c942ac2bd9464cc6d64323f9dfb))
+* Fix redaction of credentials in Firestore settings ([#1989](https://github.com/googleapis/nodejs-firestore/issues/1989)) ([98e668b](https://github.com/googleapis/nodejs-firestore/commit/98e668bb9ce7feb090f65fc61d92af433bc23094))
+* Improve retry logic for streaming API calls ([b4f7d60](https://github.com/googleapis/nodejs-firestore/commit/b4f7d6015b50f1da6afeae0b4215be416596cc69))
+* Removed unsupported QueryMode, QueryPlan, and ResultSetStats protos ([b4f7d60](https://github.com/googleapis/nodejs-firestore/commit/b4f7d6015b50f1da6afeae0b4215be416596cc69))
+
+## [7.2.0](https://github.com/googleapis/nodejs-firestore/compare/v7.1.1...v7.2.0) (2024-01-16)
+
+
+### Features
+
+* Add new types QueryMode, QueryPlan, ResultSetStats ([#1911](https://github.com/googleapis/nodejs-firestore/issues/1911)) ([8f77b68](https://github.com/googleapis/nodejs-firestore/commit/8f77b68bf70b04a66e982067aa246de0596e4ea2))
+* Expose databaseId and projectId getter on Firestore class ([#1937](https://github.com/googleapis/nodejs-firestore/issues/1937)) ([d9c867f](https://github.com/googleapis/nodejs-firestore/commit/d9c867fc5048748e5af378fd8465303224668781)), closes [#1936](https://github.com/googleapis/nodejs-firestore/issues/1936)
+
+
+### Bug Fixes
+
+* Make transaction rollback best effort. ([#1967](https://github.com/googleapis/nodejs-firestore/issues/1967)) ([1d76546](https://github.com/googleapis/nodejs-firestore/commit/1d76546a781527ef5b9085fc9f189c024355ae9f))
+
+## [7.1.1](https://github.com/googleapis/nodejs-firestore/compare/v7.1.0...v7.1.1) (2023-11-20)
+
+
+### Bug Fixes
+
+* Remove temporary header encoding workaround ([#1935](https://github.com/googleapis/nodejs-firestore/issues/1935)) ([8a4ae5b](https://github.com/googleapis/nodejs-firestore/commit/8a4ae5b07712588bd0deae917d9e17f34f1ebb60))
+* Update retry policy to not retry streams that have not made progress receiving documents ([170d05b](https://github.com/googleapis/nodejs-firestore/commit/170d05b1fa6c720d1109506ed3d3feb525c16efe))
+
+## [7.1.0](https://github.com/googleapis/nodejs-firestore/compare/v7.0.0...v7.1.0) (2023-10-11)
+
+
+### Features
+
+* Sum and Average aggregations ([#1873](https://github.com/googleapis/nodejs-firestore/issues/1873)) ([b9ea514](https://github.com/googleapis/nodejs-firestore/commit/b9ea5143f997dd217200ffa83ed481ad74f558e4))
+
+## [7.0.0](https://github.com/googleapis/nodejs-firestore/compare/v6.8.0...v7.0.0) (2023-10-03)
+
+
+### ⚠ BREAKING CHANGES
+
+* upgrade to Node 14 ([#1900](https://github.com/googleapis/nodejs-firestore/issues/1900))
+* Fix the UpdateData incorrect parameter type issue ([#1887](https://github.com/googleapis/nodejs-firestore/issues/1887))
+
+### Features
+
+* Fix the UpdateData incorrect parameter type issue ([#1887](https://github.com/googleapis/nodejs-firestore/issues/1887)) ([0afadef](https://github.com/googleapis/nodejs-firestore/commit/0afadeff4706e7bff173d8eda7b9681498b570a8))
+
+
+### Bug Fixes
+
+* Remove DocumentReference from cursor ([#1882](https://github.com/googleapis/nodejs-firestore/issues/1882)) ([da4f8f8](https://github.com/googleapis/nodejs-firestore/commit/da4f8f8b6a35fa93aca0eddc96703d3321a998f6))
+
+
+### Miscellaneous Chores
+
+* Upgrade to Node 14 ([#1900](https://github.com/googleapis/nodejs-firestore/issues/1900)) ([1f5abb8](https://github.com/googleapis/nodejs-firestore/commit/1f5abb8fbef91e372313b2dbf4d51c7d03ce69b0))
+
+## [6.8.0](https://github.com/googleapis/nodejs-firestore/compare/v6.7.0...v6.8.0) (2023-09-26)
+
+
+### Features
+
+* Publish proto definitions for SUM/AVG in Firestore ([#1856](https://github.com/googleapis/nodejs-firestore/issues/1856)) ([ac35b37](https://github.com/googleapis/nodejs-firestore/commit/ac35b372faf32f093d83af18d487f1b3f23ee673))
+
+
+### Bug Fixes
+
+* **deps:** Use protobufjs v7.2.5 ([#1889](https://github.com/googleapis/nodejs-firestore/pull/1889))
+* Add tests for multiple inequality support ([#1878](https://github.com/googleapis/nodejs-firestore/issues/1878)) ([8e621d5](https://github.com/googleapis/nodejs-firestore/commit/8e621d580396b7e3bc7e42dad0c63f91e999411f))
+
+## [6.7.0](https://github.com/googleapis/nodejs-firestore/compare/v6.6.1...v6.7.0) (2023-07-20)
+
+
+### Features
+
+* Expose MultiDb ([#1857](https://github.com/googleapis/nodejs-firestore/issues/1857)) ([1e913db](https://github.com/googleapis/nodejs-firestore/commit/1e913dbec97a6ec9339f641e7590ac4d65c7fd17))
+
+
+### Bug Fixes
+
+* Resolving issues with MultiDb support ([#1864](https://github.com/googleapis/nodejs-firestore/issues/1864)) ([1af49c1](https://github.com/googleapis/nodejs-firestore/commit/1af49c1a852c6a89a7e21a9e749d667b3b728acf))
+
+## [6.6.1](https://github.com/googleapis/nodejs-firestore/compare/v6.6.0...v6.6.1) (2023-06-01)
+
+
+### Bug Fixes
+
+* Updated logging in the client pool and client factory to log information about the required transport and actual transport used. ([#1853](https://github.com/googleapis/nodejs-firestore/issues/1853)) ([fe03d02](https://github.com/googleapis/nodejs-firestore/commit/fe03d02efc0d8e4ca90daea97f9e3339074d415d))
+
+## [6.6.0](https://github.com/googleapis/nodejs-firestore/compare/v6.5.0...v6.6.0) (2023-05-18)
+
+
+### Features
+
+* Add ApiScope and COLLECTION_RECURSIVE query_scope for Firestore index ([#1849](https://github.com/googleapis/nodejs-firestore/issues/1849)) ([b671452](https://github.com/googleapis/nodejs-firestore/commit/b6714528956f3907b1ca4aded372592ef00d34d6))
+* Add bloom filter related proto fields ([#1843](https://github.com/googleapis/nodejs-firestore/issues/1843)) ([b64e0c1](https://github.com/googleapis/nodejs-firestore/commit/b64e0c15d0f824a688ff42a8ad940b520f87cf9b))
+* Add support for environment variable FIRESTORE_PREFER_REST ([#1848](https://github.com/googleapis/nodejs-firestore/issues/1848)) ([96b1d2a](https://github.com/googleapis/nodejs-firestore/commit/96b1d2ab3248f6c4bb70d1cf735aea827a2a13da))
+
+## [6.5.0](https://github.com/googleapis/nodejs-firestore/compare/v6.4.3...v6.5.0) (2023-03-06)
+
+
+### Features
+
+* OR Queries ([#1800](https://github.com/googleapis/nodejs-firestore/issues/1800)) ([983a477](https://github.com/googleapis/nodejs-firestore/commit/983a477a6c1a22e4efba0df07e750910028e0afb))
+
+
+### Bug Fixes
+
+* Enable REST numeric enums ([#1829](https://github.com/googleapis/nodejs-firestore/issues/1829)) ([3737696](https://github.com/googleapis/nodejs-firestore/commit/3737696791b3b77fe9b333323523d8a0abcf5f7b))
+* Update generated proto types; fix the update script ([#1825](https://github.com/googleapis/nodejs-firestore/issues/1825)) ([a7e4212](https://github.com/googleapis/nodejs-firestore/commit/a7e42123da1325f526fa5c3a62f1d3dc7a2569c3))
+
+## [6.4.3](https://github.com/googleapis/nodejs-firestore/compare/v6.4.2...v6.4.3) (2023-02-16)
+
+
+### Bug Fixes
+
+* **deps:** Use google-gax v3.5.3 ([#1818](https://github.com/googleapis/nodejs-firestore/issues/1818)) ([88981ad](https://github.com/googleapis/nodejs-firestore/commit/88981ad8749b0aa38dfe9bcdd4ca5e60d76c8776))
+* Emulator support for system tests. Run system tests against the emulator using: `yarn system-test:grpc:emulator` or `yarn system-test:rest:emulator` ([8aedc63](https://github.com/googleapis/nodejs-firestore/commit/8aedc63138827ea03a8dacae4e7bccdf048a2be7))
+* Update the depth validation used when writing documents, so that it matches the validation of the Firestore backend. ([789d9eb](https://github.com/googleapis/nodejs-firestore/commit/789d9eb7f54b5329b17ef759f29252d17da47e26))
+
+## [6.4.2](https://github.com/googleapis/nodejs-firestore/compare/v6.4.1...v6.4.2) (2023-01-09)
+
+
+### Bug Fixes
+
+* **deps:** Use google-gax v3.5.2 ([#1794](https://github.com/googleapis/nodejs-firestore/issues/1794)) ([b1a0313](https://github.com/googleapis/nodejs-firestore/commit/b1a0313498b0c3569bd74ce96fce80b8f9bee1a9))
+* Ensure that the client pool consistently uses gRPC clients after transitioning from REST ([3068361](https://github.com/googleapis/nodejs-firestore/commit/306836163ae01221aa9c0076c76093e727c74a08))
+* Fix duplicates in Query.stream() with back pressure ([#1806](https://github.com/googleapis/nodejs-firestore/issues/1806)) ([a5b680d](https://github.com/googleapis/nodejs-firestore/commit/a5b680da034d600babb9e3495fb8a7bf019d1315))
+
+## [6.4.1](https://github.com/googleapis/nodejs-firestore/compare/v6.4.0...v6.4.1) (2022-10-17)
+
+
+### Bug Fixes
+
+* Force use of http by the GAX module when using the GAX fallback and connecting to the emulator ([#1788](https://github.com/googleapis/nodejs-firestore/issues/1788)) ([50747ad](https://github.com/googleapis/nodejs-firestore/commit/50747ad52b19da9ed87282af98eadff660dffb75))
+
+## [6.4.0](https://github.com/googleapis/nodejs-firestore/compare/v6.3.0...v6.4.0) (2022-10-07)
+
+
+### Features
+
+* Add internal multi-db support ([#1761](https://github.com/googleapis/nodejs-firestore/issues/1761)) ([5ba8df0](https://github.com/googleapis/nodejs-firestore/commit/5ba8df011264b435b53499642e68afd73859f332))
+* COUNT Queries ([#1774](https://github.com/googleapis/nodejs-firestore/issues/1774)) ([bcaecb4](https://github.com/googleapis/nodejs-firestore/commit/bcaecb45b7911073bb968542df0267ba81d4462d))
+
+
+### Bug Fixes
+
+* Remove [@internal](https://github.com/internal) annotation from snapshot_ ([#1728](https://github.com/googleapis/nodejs-firestore/issues/1728)) ([983ab89](https://github.com/googleapis/nodejs-firestore/commit/983ab89387d8c5314680d1520c3bece011ee6a64))
+
+## [6.3.0](https://github.com/googleapis/nodejs-firestore/compare/v6.2.0...v6.3.0) (2022-09-22)
+
+
+### Features
+
+* Add aggregation query APIs ([#1765](https://github.com/googleapis/nodejs-firestore/issues/1765)) ([18be4d0](https://github.com/googleapis/nodejs-firestore/commit/18be4d0ca3a8e927a883ba6e41a43d19fb2af665))
+
+
+### Bug Fixes
+
+* Tests will now verify asynchronous termination of underlying steam, and fix related bug. ([#1772](https://github.com/googleapis/nodejs-firestore/issues/1772)) ([a1717ff](https://github.com/googleapis/nodejs-firestore/commit/a1717ff279f1ea9647e28b8e93539bcad9739af0))
+
+## [6.2.0](https://github.com/googleapis/nodejs-firestore/compare/v6.1.0...v6.2.0) (2022-09-13)
+
+
+### Features
+
+* Use REST ([#1698](https://github.com/googleapis/nodejs-firestore/issues/1698)) ([d85b0e9](https://github.com/googleapis/nodejs-firestore/commit/d85b0e93bcb4a5806490ee66a4443afd4a0a519a))
+
+
+### Bug Fixes
+
+* Minify proto JSON files ([#1771](https://github.com/googleapis/nodejs-firestore/issues/1771)) ([6393fe7](https://github.com/googleapis/nodejs-firestore/commit/6393fe704097a1214961fa30f01832a64dced775))
+* Remove hack in update.sh, and replace with existing pattern for protobuf dependencies. ([#1769](https://github.com/googleapis/nodejs-firestore/issues/1769)) ([6ba6751](https://github.com/googleapis/nodejs-firestore/commit/6ba67517123578a93bb3e0eeb771b610ac3ee397))
+
+## [6.1.0](https://github.com/googleapis/nodejs-firestore/compare/v6.0.0...v6.1.0) (2022-09-07)
+
+
+### Features
+
+* Accept google-gax instance as a parameter ([#1757](https://github.com/googleapis/nodejs-firestore/issues/1757)) ([ef59a22](https://github.com/googleapis/nodejs-firestore/commit/ef59a22a8abd894d4d3e8b05f075f510de26019f))
+
+
+### Bug Fixes
+
+* Better support for fallback mode ([#1756](https://github.com/googleapis/nodejs-firestore/issues/1756)) ([a029a6e](https://github.com/googleapis/nodejs-firestore/commit/a029a6e602ef5ed6553ecc7022623fcd81763c7e))
+* Don't allow serialization of firestore settings ([#1742](https://github.com/googleapis/nodejs-firestore/issues/1742)) ([fa0ad66](https://github.com/googleapis/nodejs-firestore/commit/fa0ad66bc7e4a0c46f1ae5ca10b2a6f3a528ab6f))
+* Pin Typescript to prevent new type checking. ([#1764](https://github.com/googleapis/nodejs-firestore/issues/1764)) ([dd01b27](https://github.com/googleapis/nodejs-firestore/commit/dd01b27022e35ddf6793d71451d0b86f549288fe))
+* Update GAX ([#1758](https://github.com/googleapis/nodejs-firestore/issues/1758)) ([1931415](https://github.com/googleapis/nodejs-firestore/commit/19314159a9907dfea8301b41d8050b0d2e783dd8))
+* Version 7 of protobufjs broke the update.sh script. Added path to built in protobuf. ([#1766](https://github.com/googleapis/nodejs-firestore/issues/1766)) ([40f1db3](https://github.com/googleapis/nodejs-firestore/commit/40f1db379ba01174471bbb91cdddc88f929c9b46))
+
+## [6.0.0](https://github.com/googleapis/nodejs-firestore/compare/v5.0.2...v6.0.0) (2022-07-22)
+
+
+### ⚠ BREAKING CHANGES
+
+* update library to use Node 12 (#1725)
+
+### Features
+
+* Enable RunQueryResponse.done ([#1712](https://github.com/googleapis/nodejs-firestore/issues/1712)) ([0cc549c](https://github.com/googleapis/nodejs-firestore/commit/0cc549c69ccc59e25f8347d6b236f8b9b04dc105))
+* Support Logical Termination on RunQueryResponse ([#1741](https://github.com/googleapis/nodejs-firestore/issues/1741)) ([07de28a](https://github.com/googleapis/nodejs-firestore/commit/07de28a04cdea27c5f859091aaf30d16bd8a8c3c))
+* support regapic LRO ([#1729](https://github.com/googleapis/nodejs-firestore/issues/1729)) ([b9d8fef](https://github.com/googleapis/nodejs-firestore/commit/b9d8fefc5f927d1f064a79ec0990d256803360cd))
+* update client libraries to support Database operations ([#1676](https://github.com/googleapis/nodejs-firestore/issues/1676)) ([533aade](https://github.com/googleapis/nodejs-firestore/commit/533aade3272f07b39bbad2c32a5d9669fde6de53))
+
+
+### Bug Fixes
+
+* change REST binding for ListDocuments to support root collection ([#1695](https://github.com/googleapis/nodejs-firestore/issues/1695)) ([6185f13](https://github.com/googleapis/nodejs-firestore/commit/6185f13070ff9dda91d7128e3b8a1db7f09914a8))
+* **deps:** update dependency protobufjs to v7 ([#1747](https://github.com/googleapis/nodejs-firestore/issues/1747)) ([4e8d33c](https://github.com/googleapis/nodejs-firestore/commit/4e8d33cce418dfb004725ce2271121fd1fdbd9b2))
+* split v1 and v1beta1 protos to improve startup time ([#1664](https://github.com/googleapis/nodejs-firestore/issues/1664)) ([f3729cf](https://github.com/googleapis/nodejs-firestore/commit/f3729cf49818b9b929a556e7a8e8a5588b5f2726))
+
+
+### Build System
+
+* update library to use Node 12 ([#1725](https://github.com/googleapis/nodejs-firestore/issues/1725)) ([0abbd21](https://github.com/googleapis/nodejs-firestore/commit/0abbd215d4574f238b40630361d0836432ead3af))
+
+### [5.0.2](https://www.github.com/googleapis/nodejs-firestore/compare/v5.0.1...v5.0.2) (2022-01-07)
+
+
+### Bug Fixes
+
+* remove serializer check from Query.isEqual() ([#1654](https://www.github.com/googleapis/nodejs-firestore/issues/1654)) ([f13da18](https://www.github.com/googleapis/nodejs-firestore/commit/f13da184bd2b4f9abfe920f6d9f7af8f2f6f37cb))
+
+### [5.0.1](https://www.github.com/googleapis/nodejs-firestore/compare/v5.0.0...v5.0.1) (2021-12-02)
+
+
+### Bug Fixes
+
+* save negative zero as doubleValue ([#1639](https://www.github.com/googleapis/nodejs-firestore/issues/1639)) ([a6ba5cc](https://www.github.com/googleapis/nodejs-firestore/commit/a6ba5ccf8b21dbe117e5d8ad5fc1e26d16ed0d1d))
+
+## [5.0.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.15.1...v5.0.0) (2021-11-23)
+
+
+### ⚠ BREAKING CHANGES
+
+* upgrade Typescript to v4.1.5 and add converter and typing upgrades (#1632)
+
+### Features
+
+* upgrade Typescript to v4.1.5 and add converter and typing upgrades ([#1632](https://www.github.com/googleapis/nodejs-firestore/issues/1632)) ([c293955](https://www.github.com/googleapis/nodejs-firestore/commit/c293955fecd19d12abcb9c441c39ef2664cb011b))
+
+### [4.15.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.15.0...v4.15.1) (2021-09-03)
+
+
+### Bug Fixes
+
+* **build:** migrate to main branch ([#1601](https://www.github.com/googleapis/nodejs-firestore/issues/1601)) ([6f16b9a](https://www.github.com/googleapis/nodejs-firestore/commit/6f16b9ab9e1365b99498e9df4d56a88db313f9a6))
+
+## [4.15.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.14.2...v4.15.0) (2021-08-26)
+
+
+### Features
+
+* turns on self-signed JWT feature flag ([#1593](https://www.github.com/googleapis/nodejs-firestore/issues/1593)) ([feee8cc](https://www.github.com/googleapis/nodejs-firestore/commit/feee8cc1b32ab04613f654806ca31477328059ff))
+
+
+### Bug Fixes
+
+* Handles identical document ids from different collections. ([#1599](https://www.github.com/googleapis/nodejs-firestore/issues/1599)) ([745b608](https://www.github.com/googleapis/nodejs-firestore/commit/745b608a7883a27ccb1c4d1f7800fdcc9a7917b1))
+
+### [4.14.2](https://www.github.com/googleapis/nodejs-firestore/compare/v4.14.1...v4.14.2) (2021-08-17)
+
+
+### Bug Fixes
+
+* **deps:** google-gax v2.24.1 ([#1588](https://www.github.com/googleapis/nodejs-firestore/issues/1588)) ([56150b6](https://www.github.com/googleapis/nodejs-firestore/commit/56150b62f55d765c0c221aed70b999477f867ace))
+
+### [4.14.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.14.0...v4.14.1) (2021-08-02)
+
+
+### Bug Fixes
+
+* avoid destructuring undefined timestamps ([#1575](https://www.github.com/googleapis/nodejs-firestore/issues/1575)) ([a61a24a](https://www.github.com/googleapis/nodejs-firestore/commit/a61a24a44e70a9693f552a3a39f4579d861fd77f))
+
+## [4.14.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.13.2...v4.14.0) (2021-07-30)
+
+
+### Features
+
+* add "NON_EMPTY_DEFAULT" FieldBehavior ([#1554](https://www.github.com/googleapis/nodejs-firestore/issues/1554)) ([8d9c503](https://www.github.com/googleapis/nodejs-firestore/commit/8d9c50381eedf6ee8043eed681d03b44262b9820))
+* allow UnhandledPromiseRejection errors in BulkWriter if no error handler is specified ([#1572](https://www.github.com/googleapis/nodejs-firestore/issues/1572)) ([e862ac8](https://www.github.com/googleapis/nodejs-firestore/commit/e862ac81cbb99287a226989b184fc2e683defa16))
+
+### [4.13.2](https://www.github.com/googleapis/nodejs-firestore/compare/v4.13.1...v4.13.2) (2021-07-14)
+
+
+### Bug Fixes
+
+* **deps:** google-gax v2.17.1 ([#1557](https://www.github.com/googleapis/nodejs-firestore/issues/1557)) ([866bd25](https://www.github.com/googleapis/nodejs-firestore/commit/866bd255d930850956609a0941d4010847c0d196))
+* lower batch size on BulkWriter retry to stay under throughput limits ([#1556](https://www.github.com/googleapis/nodejs-firestore/issues/1556)) ([f17a36e](https://www.github.com/googleapis/nodejs-firestore/commit/f17a36e3fa1ce532c1c68ed63ea1845408368469))
+
+### [4.13.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.13.0...v4.13.1) (2021-07-01)
+
+
+### Bug Fixes
+
+* lower batch size on BulkWriter retry ([#1549](https://www.github.com/googleapis/nodejs-firestore/issues/1549)) ([26d480b](https://www.github.com/googleapis/nodejs-firestore/commit/26d480b4a7fbeb26e99bb23d7aa1fbd4802b738a))
+
+## [4.13.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.12.3...v4.13.0) (2021-06-29)
+
+
+### Features
+
+* add read-only transactions ([#1541](https://www.github.com/googleapis/nodejs-firestore/issues/1541)) ([ca4241e](https://www.github.com/googleapis/nodejs-firestore/commit/ca4241eb3ee4abb8453b6da0911397187dc18dde))
+* retry BatchGetDocuments RPCs that fail with errors ([#1544](https://www.github.com/googleapis/nodejs-firestore/issues/1544)) ([b39dd3c](https://www.github.com/googleapis/nodejs-firestore/commit/b39dd3c65549fb1a651c1722d8ea2c038e152417))
+
+
+### Bug Fixes
+
+* **deps:** google-gax v2.17.0 with mTLS ([#1546](https://www.github.com/googleapis/nodejs-firestore/issues/1546)) ([a322345](https://www.github.com/googleapis/nodejs-firestore/commit/a32234510d487982b950c88575b9425c531c2d94))
+* make request optional in all cases ([#1536](https://www.github.com/googleapis/nodejs-firestore/issues/1536)) ([f6edfc1](https://www.github.com/googleapis/nodejs-firestore/commit/f6edfc181ca39cd307eab6d141db08f377d5cfdf))
+
+### [4.12.3](https://www.github.com/googleapis/nodejs-firestore/compare/v4.12.2...v4.12.3) (2021-06-16)
+
+
+### Bug Fixes
+
+* bulkWriter: ensure buffered batches are sent after flush ([#1535](https://www.github.com/googleapis/nodejs-firestore/issues/1535)) ([115a134](https://www.github.com/googleapis/nodejs-firestore/commit/115a13407b907887a930b4299ebed042532c3ec2))
+* GoogleAdsError missing using generator version after 1.3.0 ([#1526](https://www.github.com/googleapis/nodejs-firestore/issues/1526)) ([adfe68e](https://www.github.com/googleapis/nodejs-firestore/commit/adfe68e194d518369d5b4f89e9be89f948efbdbb))
+
+### [4.12.2](https://www.github.com/googleapis/nodejs-firestore/compare/v4.12.1...v4.12.2) (2021-05-27)
+
+
+### Bug Fixes
+
+* do not leak credentials in Firestore.toJSON() ([#1522](https://www.github.com/googleapis/nodejs-firestore/issues/1522)) ([791310f](https://www.github.com/googleapis/nodejs-firestore/commit/791310ff4b0a828ca6d1f5c0fa03a110972afb1f))
+
+### [4.12.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.12.0...v4.12.1) (2021-05-27)
+
+
+### Bug Fixes
+
+* do not load google-gax at client startup ([#1517](https://www.github.com/googleapis/nodejs-firestore/issues/1517)) ([2141b08](https://www.github.com/googleapis/nodejs-firestore/commit/2141b0879cbccb1354f9821edcc917b6aa4ff0ab))
+* recursive delete: backporting changes from Java ([#1514](https://www.github.com/googleapis/nodejs-firestore/issues/1514)) ([92ea651](https://www.github.com/googleapis/nodejs-firestore/commit/92ea651adc84ba854ae7cd203af231573f885307))
+* return results from getPartitions() in order ([#1521](https://www.github.com/googleapis/nodejs-firestore/issues/1521)) ([c8168a8](https://www.github.com/googleapis/nodejs-firestore/commit/c8168a83a864dd77f88b1743adcd3568671702fe))
+
+## [4.12.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.11.1...v4.12.0) (2021-05-19)
+
+
+### Features
+
+* add `gcf-owl-bot[bot]` to `ignoreAuthors` ([#1506](https://www.github.com/googleapis/nodejs-firestore/issues/1506)) ([6fa1d4d](https://www.github.com/googleapis/nodejs-firestore/commit/6fa1d4da627f17d76cf2d6109765862fd5083e03))
+* add Precondition.exists to delete() ([#1505](https://www.github.com/googleapis/nodejs-firestore/issues/1505)) ([28d645b](https://www.github.com/googleapis/nodejs-firestore/commit/28d645bd3e368abde592bfa2611de3378ca175a6))
+
+### [4.11.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.11.0...v4.11.1) (2021-05-13)
+
+
+### Bug Fixes
+
+* **deps:** require google-gax v2.12.0 ([#1497](https://www.github.com/googleapis/nodejs-firestore/issues/1497)) ([a8d5f0b](https://www.github.com/googleapis/nodejs-firestore/commit/a8d5f0b1e4503ef9f0d289dbf8ed67a30eb9ed4b))
+
+## [4.11.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.10.1...v4.11.0) (2021-05-05)
+
+
+### Features
+
+* add recursive delete to Firestore class ([#1494](https://www.github.com/googleapis/nodejs-firestore/issues/1494)) ([6f1e304](https://www.github.com/googleapis/nodejs-firestore/commit/6f1e3040800d0dcc5ed3f9f7cef16fe41804266a))
+
+### [4.10.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.10.0...v4.10.1) (2021-04-28)
+
+
+### Bug Fixes
+
+* type of QuerySnapshot.docChanges() should be generic ([#1484](https://www.github.com/googleapis/nodejs-firestore/issues/1484)) ([3ed1929](https://www.github.com/googleapis/nodejs-firestore/commit/3ed1929a06b4c019bbb0b1db3e1abcd62ee668d2))
+
+## [4.10.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.9...v4.10.0) (2021-04-15)
+
+
+### Features
+
+* add buffering layer to BulkWriter ([#1470](https://www.github.com/googleapis/nodejs-firestore/issues/1470)) ([9cc9548](https://www.github.com/googleapis/nodejs-firestore/commit/9cc954849c74199f01e52b24fc7ba045d5b56be4))
+
+
+### Bug Fixes
+
+* use BigInt when calculating nanos in Timestamp.fromMillis() ([#1468](https://www.github.com/googleapis/nodejs-firestore/issues/1468)) ([cf1949f](https://www.github.com/googleapis/nodejs-firestore/commit/cf1949f99f840d1e34edfa31a223418abdf48372))
+
+### [4.9.9](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.8...v4.9.9) (2021-04-07)
+
+
+### Bug Fixes
+
+* BulkWriter: apply rate limiter before sending batch ([#1451](https://www.github.com/googleapis/nodejs-firestore/issues/1451)) ([3a50f8b](https://www.github.com/googleapis/nodejs-firestore/commit/3a50f8b524a73d60c6034d4828682b9dc1b49d6e))
+* remove floating point rounding error in Timestamp.fromMillis() ([#1464](https://www.github.com/googleapis/nodejs-firestore/issues/1464)) ([97e7281](https://www.github.com/googleapis/nodejs-firestore/commit/97e728188a097760bd52099ec852a716a25b4745))
+
+### [4.9.8](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.7...v4.9.8) (2021-03-15)
+
+
+### Bug Fixes
+
+* BulkWriter: add backoff on retries ([#1447](https://www.github.com/googleapis/nodejs-firestore/issues/1447)) ([f483083](https://www.github.com/googleapis/nodejs-firestore/commit/f48308344a90d2da48af99a878f0384b7b93f704))
+
+### [4.9.7](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.6...v4.9.7) (2021-03-09)
+
+
+### Bug Fixes
+
+* export v1 and v1beta1 client class types correctly ([#1445](https://www.github.com/googleapis/nodejs-firestore/issues/1445)) ([6c9319e](https://www.github.com/googleapis/nodejs-firestore/commit/6c9319ed6e2ac0dfe0fcf45853f0b38dc0784686))
+* retry BulkWriter deletes that fail with RST_STREAM error ([#1442](https://www.github.com/googleapis/nodejs-firestore/issues/1442)) ([cccf48d](https://www.github.com/googleapis/nodejs-firestore/commit/cccf48de4963403a2e77ba241641a2b77fb993da))
+
+### [4.9.6](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.5...v4.9.6) (2021-03-03)
+
+
+### Bug Fixes
+
+* set default max ratelimiter throughput to 10k for BulkWriter ([#1439](https://www.github.com/googleapis/nodejs-firestore/issues/1439)) ([c06fb3c](https://www.github.com/googleapis/nodejs-firestore/commit/c06fb3cc32f94c9058ad8e484333e688967d5a8f))
+
+### [4.9.5](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.4...v4.9.5) (2021-03-02)
+
+
+### Bug Fixes
+
+* add typings to v1 and v1beta in firestore.d.ts ([#1433](https://www.github.com/googleapis/nodejs-firestore/issues/1433)) ([47238a9](https://www.github.com/googleapis/nodejs-firestore/commit/47238a926471dee8bdeaa38bcb5f772c7f20349f))
+
+### [4.9.4](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.3...v4.9.4) (2021-02-15)
+
+
+### Bug Fixes
+
+* update "protobufjs" to be a dependency ([#1425](https://www.github.com/googleapis/nodejs-firestore/issues/1425)) ([d960fbb](https://www.github.com/googleapis/nodejs-firestore/commit/d960fbb5ca20a7eb9594e8c0b2dfabdb0cb473e3))
+
+### [4.9.3](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.2...v4.9.3) (2021-02-09)
+
+
+### Bug Fixes
+
+* use `Array.isArray` instead of an `instanceof` check ([#1417](https://www.github.com/googleapis/nodejs-firestore/issues/1417)) ([4a8c3cf](https://www.github.com/googleapis/nodejs-firestore/commit/4a8c3cfcaf57ed600da094ab0275a5f32fb1ea30))
+
+### [4.9.2](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.1...v4.9.2) (2021-02-05)
+
+
+### Bug Fixes
+
+* support byte values in Bundles ([#1395](https://www.github.com/googleapis/nodejs-firestore/issues/1395)) ([8cf53a9](https://www.github.com/googleapis/nodejs-firestore/commit/8cf53a92dc13324562ca1a1e841312e43f5c383e))
+
+### [4.9.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.9.0...v4.9.1) (2021-01-26)
+
+
+### Bug Fixes
+
+* handle ignoreUndefinedProperties in set(merge: true) ([#1396](https://www.github.com/googleapis/nodejs-firestore/issues/1396)) ([d870c9d](https://www.github.com/googleapis/nodejs-firestore/commit/d870c9de75a2c67ffc48d1205a5929df4c57f3cb))
+
+## [4.9.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.8.1...v4.9.0) (2021-01-25)
+
+
+### Features
+
+* add support for applying default converter in withConverter() ([#1394](https://www.github.com/googleapis/nodejs-firestore/issues/1394)) ([ab057f7](https://www.github.com/googleapis/nodejs-firestore/commit/ab057f7b362a2929ebffa19e570d3e9cd23bc964))
+* adds UNORDERED_LIST type ([#1382](https://www.github.com/googleapis/nodejs-firestore/issues/1382)) ([5b43e7b](https://www.github.com/googleapis/nodejs-firestore/commit/5b43e7bcb2ea9c014587c84164f9ba8a0ed05397))
+* introduces style enumeration ([#1388](https://www.github.com/googleapis/nodejs-firestore/issues/1388)) ([eb1b4dc](https://www.github.com/googleapis/nodejs-firestore/commit/eb1b4dccf52b09ce395ba2ceabe02e84ee8e4dfd))
+
+### [4.8.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.8.0...v4.8.1) (2020-12-16)
+
+
+### Bug Fixes
+
+* release clients that received a RST_STREAM error ([#1380](https://www.github.com/googleapis/nodejs-firestore/issues/1380)) ([0296dd6](https://www.github.com/googleapis/nodejs-firestore/commit/0296dd65d135f5b809547c69dec03dcc8f4bd071))
+
+## [4.8.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.7.2...v4.8.0) (2020-12-03)
+
+
+### Features
+
+* Add support to build Firestore bundles ([#1365](https://www.github.com/googleapis/nodejs-firestore/issues/1365)) ([bae82dd](https://www.github.com/googleapis/nodejs-firestore/commit/bae82dd4438ac03107c221c62dbce8cf6d20a4b1))
+
+
+### Bug Fixes
+
+* stop using GRPC channels after RST_STREAM ([#1373](https://www.github.com/googleapis/nodejs-firestore/issues/1373)) ([504bb5f](https://www.github.com/googleapis/nodejs-firestore/commit/504bb5f34159238cd9bed3645591e6c6c810452b))
+
+### [4.7.2](https://www.github.com/googleapis/nodejs-firestore/compare/v4.7.1...v4.7.2) (2020-11-25)
+
+
+### Bug Fixes
+
+* **browser:** check for fetch on window ([#1368](https://www.github.com/googleapis/nodejs-firestore/issues/1368)) ([3cd29d2](https://www.github.com/googleapis/nodejs-firestore/commit/3cd29d22073cff8d0ca072057c63dfe0a2144841))
+
+### [4.7.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.7.0...v4.7.1) (2020-11-10)
+
+
+### Bug Fixes
+
+* do not modify options object, use defaultScopes ([#1360](https://www.github.com/googleapis/nodejs-firestore/issues/1360)) ([bd40d3a](https://www.github.com/googleapis/nodejs-firestore/commit/bd40d3ae73cfd0a8e2503fca8d0aa28cb3bbcb86))
+* ignore 'undefined' in update() with UpdateMap ([#1363](https://www.github.com/googleapis/nodejs-firestore/issues/1363)) ([9bad804](https://www.github.com/googleapis/nodejs-firestore/commit/9bad804205ab886c1a80351a8e7a7726e3d242ec))
+* remove unneeded async signature from BulkWriter.sendBatch() ([#1361](https://www.github.com/googleapis/nodejs-firestore/issues/1361)) ([b5cf449](https://www.github.com/googleapis/nodejs-firestore/commit/b5cf4499724ff41e626a69f2db66be22167a7223))
+
+## [4.7.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.6.1...v4.7.0) (2020-11-05)
+
+
+### Features
+
+* add ability to specify custom headers for individual RPC types ([#1355](https://www.github.com/googleapis/nodejs-firestore/issues/1355)) ([0900379](https://www.github.com/googleapis/nodejs-firestore/commit/0900379e9853a8c2c7c36418dce8beb7ce966889))
+
+### [4.6.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.6.0...v4.6.1) (2020-11-03)
+
+
+### Bug Fixes
+
+* create new batch for writes to the same doc ([#1352](https://www.github.com/googleapis/nodejs-firestore/issues/1352)) ([bd5adc3](https://www.github.com/googleapis/nodejs-firestore/commit/bd5adc35ea1f662ee762ac8b9048556e78a54f35))
+
+## [4.6.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.5.0...v4.6.0) (2020-11-03)
+
+
+### Features
+
+* add onWriteError() and onWriteResult() handlers to BulkWriter ([#1315](https://www.github.com/googleapis/nodejs-firestore/issues/1315)) ([a173f4d](https://www.github.com/googleapis/nodejs-firestore/commit/a173f4defab7a6e750907fcb86431c56fcb3d4cf))
+
+
+### Bug Fixes
+
+* retry transactions that fail with expired transaction IDs ([#1347](https://www.github.com/googleapis/nodejs-firestore/issues/1347)) ([a18ab50](https://www.github.com/googleapis/nodejs-firestore/commit/a18ab50f3304f1154caaaab9768b736bdb3d8442))
+
+## [4.5.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.4.0...v4.5.0) (2020-10-26)
+
+
+### Features
+
+* add implicit ordering for startAt(DocumentReference) calls ([#1328](https://www.github.com/googleapis/nodejs-firestore/issues/1328)) ([e9afa38](https://www.github.com/googleapis/nodejs-firestore/commit/e9afa38592b3cc324a8d4685244ee4b249eeedfc))
+* add support for Partition API ([#1320](https://www.github.com/googleapis/nodejs-firestore/issues/1320)) ([51961c3](https://www.github.com/googleapis/nodejs-firestore/commit/51961c3b39ff9c532214eb783458f83da98eb485))
+
+
+### Bug Fixes
+
+* retry PartitionQuery for INTERNAL and DEADLINE_EXCEEDED ([#1336](https://www.github.com/googleapis/nodejs-firestore/issues/1336)) ([fdf5462](https://www.github.com/googleapis/nodejs-firestore/commit/fdf5462917e322cc04bf47ebc337d5a76a4a8b18))
+* simplify BulkWriter logic ([#1321](https://www.github.com/googleapis/nodejs-firestore/issues/1321)) ([b493baf](https://www.github.com/googleapis/nodejs-firestore/commit/b493baf44e729fa584b29881ef83f7821967a97b))
+* speed up listDocuments pagination ([#1344](https://www.github.com/googleapis/nodejs-firestore/issues/1344)) ([498301d](https://www.github.com/googleapis/nodejs-firestore/commit/498301dc06bdd5a1eccaadd7ffb1b470749488f7))
+* Update getAll example in documentation ([#1326](https://www.github.com/googleapis/nodejs-firestore/issues/1326)) ([721fce0](https://www.github.com/googleapis/nodejs-firestore/commit/721fce02440fde39e8a5c2d379b2254079e15201))
+* update required field to implement NodeJS.Timeout ([#1338](https://www.github.com/googleapis/nodejs-firestore/issues/1338)) ([6b7371b](https://www.github.com/googleapis/nodejs-firestore/commit/6b7371b4511a7cf039f85519a9d4b8be1bff8930))
+* **firestore/v1:** give PartitionQuery retry/timeout config ([#1334](https://www.github.com/googleapis/nodejs-firestore/issues/1334)) ([39a30c2](https://www.github.com/googleapis/nodejs-firestore/commit/39a30c24a54078e53ad9c746ee8ae5a4a9471349))
+
+## [4.4.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.3.0...v4.4.0) (2020-09-29)
+
+
+### Features
+
+* add starting/max rates to BulkWriterOptions ([#1305](https://www.github.com/googleapis/nodejs-firestore/issues/1305)) ([57dcf1c](https://www.github.com/googleapis/nodejs-firestore/commit/57dcf1c42b406a15ecb960059d67d99a97d42547))
+
+
+## [4.3.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.2.0...v4.3.0) (2020-09-22)
+
+
+### Features
+
+* add support for != and not-in queries ([#1292](https://www.github.com/googleapis/nodejs-firestore/issues/1292)) ([786e52f](https://www.github.com/googleapis/nodejs-firestore/commit/786e52f8c8b7b9c6b84ffc988190470a063d5855))
+
+
+### Bug Fixes
+
+* add capacity logging to RateLimiter ([#1287](https://www.github.com/googleapis/nodejs-firestore/issues/1287)) ([befe625](https://www.github.com/googleapis/nodejs-firestore/commit/befe625f35b7c96e9a90399a1ca71a8a049224ad))
+* allow `setLogFunction(null)` ([#1304](https://www.github.com/googleapis/nodejs-firestore/issues/1304)) ([20b1226](https://www.github.com/googleapis/nodejs-firestore/commit/20b122695843bffc106f73c92e112144f0b96070))
+* bulkWriter: writing to the same document does not create a new batch ([#1298](https://www.github.com/googleapis/nodejs-firestore/issues/1298)) ([6243d62](https://www.github.com/googleapis/nodejs-firestore/commit/6243d625481e8f9a852b4a3bf8d77ca9cbca4dd3))
+* change typings for select() to return `Query` ([#1303](https://www.github.com/googleapis/nodejs-firestore/issues/1303)) ([b678857](https://www.github.com/googleapis/nodejs-firestore/commit/b678857afcdf14be5d645d7552e5f4aa4183b037))
+* correct BulkWriter types in firestore.d.ts ([#1284](https://www.github.com/googleapis/nodejs-firestore/issues/1284)) ([382128b](https://www.github.com/googleapis/nodejs-firestore/commit/382128b83de01cc0f88110393a1271b8d768509e))
+
+## [4.2.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.1.2...v4.2.0) (2020-07-31)
+
+
+### Features
+
+* allow `Settings.host` to be used when `Settings.servicePath` is set ([#1275](https://www.github.com/googleapis/nodejs-firestore/issues/1275)) ([34d6728](https://www.github.com/googleapis/nodejs-firestore/commit/34d672870f9a4673e990176e4453c4202a1386f9))
+
+### [4.1.2](https://www.github.com/googleapis/nodejs-firestore/compare/v4.1.1...v4.1.2) (2020-07-24)
+
+
+### Bug Fixes
+
+* add Firestore.bulkWriter to firestore.d.ts ([#1272](https://www.github.com/googleapis/nodejs-firestore/issues/1272)) ([5e7e627](https://www.github.com/googleapis/nodejs-firestore/commit/5e7e62712ab049ce1adcb26213dd13964939bf65))
+
+### [4.1.1](https://www.github.com/googleapis/nodejs-firestore/compare/v4.1.0...v4.1.1) (2020-07-09)
+
+
+### Bug Fixes
+
+* typeo in nodejs .gitattribute ([#1257](https://www.github.com/googleapis/nodejs-firestore/issues/1257)) ([2664878](https://www.github.com/googleapis/nodejs-firestore/commit/2664878c0f71d83b0d9e5475d31a9daec1a34eaa))
+
+## [4.1.0](https://www.github.com/googleapis/nodejs-firestore/compare/v4.0.0...v4.1.0) (2020-07-08)
+
+
+### Features
+
+* Added `Firestore.bulkWriter()`, which performs large scale writes in parallel. By default, BulkWriter throttles writes according to the "500/50/5" rule and retries writes that fail due to contention. ([#1252](https://www.github.com/googleapis/nodejs-firestore/issues/1252)) ([d0c6c4b](https://www.github.com/googleapis/nodejs-firestore/commit/d0c6c4b116e096a1bb59c89de26cedb8cf5f1224))
+
+## [4.0.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.8.6...v4.0.0) (2020-06-24)
+
+
+### ⚠ BREAKING CHANGES
+
+* drop Node 8 support (#1006)
+* `FirestoreDataConverter.fromFirestore()` is now called with a `QueryDocumentSnapshot` instead of `DocumentData` (#965)
+
+### Features
+
+* add support for serialization to BigInt `(via settings({useBigInt: true})` (#1016)
+* add support for set() with SetOptions when using `FirestoreDataConverter` (#1087)
+* retry CommitRequests that fail with UNAVAILABLE (#1235)
+
+### Bug Fix
+- remove fallback code that periodically invoked CommitRequests inside Transactions on GCF (#1112)
+- fixes an error that prevented Firestore from connecting to the Emulator if multiple versions of `@grpc/grpc-js` are installed (#1233)
+
+
+### [3.8.6](https://www.github.com/googleapis/nodejs-firestore/compare/v3.8.5...v3.8.6) (2020-06-19)
+
+
+### Bug Fixes
+
+* reject all promises with errors ([#1224](https://www.github.com/googleapis/nodejs-firestore/issues/1224)) ([9118521](https://www.github.com/googleapis/nodejs-firestore/commit/9118521a0382fd2d484803a89e590c1bf6d2a3c6))
+* restart onSnapshot() listeners that stop receiving updates ([#1220](https://www.github.com/googleapis/nodejs-firestore/issues/1220)) ([49ca641](https://www.github.com/googleapis/nodejs-firestore/commit/49ca641ca5d813923b3d4efd113bfc5aecd32437))
+
+### [3.8.5](https://www.github.com/googleapis/nodejs-firestore/compare/v3.8.4...v3.8.5) (2020-06-10)
+
+
+### Bug Fixes
+
+* fix flaky BulkWriter test ([#1115](https://www.github.com/googleapis/nodejs-firestore/issues/1115)) ([9a24cc0](https://www.github.com/googleapis/nodejs-firestore/commit/9a24cc0c6ee68c1dee7ec64d89dfa7c88375f88d))
+* retry ABORTED for non-transactional commits ([#1111](https://www.github.com/googleapis/nodejs-firestore/issues/1111)) ([f175236](https://www.github.com/googleapis/nodejs-firestore/commit/f175236bde2f64365f140b14641f848bd4eb34d9))
+* retry Query streams ([#1116](https://www.github.com/googleapis/nodejs-firestore/issues/1116)) ([d7574ea](https://www.github.com/googleapis/nodejs-firestore/commit/d7574ea4ecd807d501243f8435903cfa385bb630))
+
+### [3.8.4](https://www.github.com/googleapis/nodejs-firestore/compare/v3.8.3...v3.8.4) (2020-06-01)
+
+
+### Bug Fixes
+
+* send Authentication header with every emulator request ([#1105](https://www.github.com/googleapis/nodejs-firestore/issues/1105)) ([83f617c](https://www.github.com/googleapis/nodejs-firestore/commit/83f617c753dbcad58eb91be585fd9fcb10480099))
+
+### [3.8.3](https://www.github.com/googleapis/nodejs-firestore/compare/v3.8.2...v3.8.3) (2020-05-31)
+
+
+### Bug Fixes
+
+* return null for 'parent' call on root collection ([#1099](https://www.github.com/googleapis/nodejs-firestore/issues/1099)) ([c5c0b15](https://www.github.com/googleapis/nodejs-firestore/commit/c5c0b157bf32466875ace690216a99371d31b461))
+
+### [3.8.2](https://www.github.com/googleapis/nodejs-firestore/compare/v3.8.1...v3.8.2) (2020-05-30)
+
+
+### Bug Fixes
+
+* authenticate as admin user when ssl:false is set ([#1095](https://www.github.com/googleapis/nodejs-firestore/issues/1095)) ([a178556](https://www.github.com/googleapis/nodejs-firestore/commit/a17855634542bce798f1ffe50d72775647990616)), closes [/github.com/firebase/firebase-js-sdk/issues/3105#issuecomment-635541894](https://www.github.com/googleapis//github.com/firebase/firebase-js-sdk/issues/3105/issues/issuecomment-635541894)
+
+### [3.8.1](https://www.github.com/googleapis/nodejs-firestore/compare/v3.8.0...v3.8.1) (2020-05-27)
+
+
+### Bug Fixes
+
+* Add tests to check fields used in whereIn should be equality filters ([#1081](https://www.github.com/googleapis/nodejs-firestore/issues/1081)) ([3153dd2](https://www.github.com/googleapis/nodejs-firestore/commit/3153dd296891a983b3a0e78354df3fe106ad44a2))
+* capture error stacks across async calls ([#1088](https://www.github.com/googleapis/nodejs-firestore/issues/1088)) ([7acdd7e](https://www.github.com/googleapis/nodejs-firestore/commit/7acdd7e9e0877fd6dbb50539a0a3c1537d30904a))
+
+## [3.8.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.7.5...v3.8.0) (2020-05-13)
+
+
+### Features
+
+* add ignoreUndefinedProperties option ([#1062](https://www.github.com/googleapis/nodejs-firestore/issues/1062)) ([de733c8](https://www.github.com/googleapis/nodejs-firestore/commit/de733c821152a32893e7fccf30cdf96a2f8050eb))
+
+
+### Bug Fixes
+
+* prepare sources for BulkWriter ([#1051](https://www.github.com/googleapis/nodejs-firestore/issues/1051)) ([8c52d47](https://www.github.com/googleapis/nodejs-firestore/commit/8c52d475ae486e2998220947a0b0441d4a95ab49))
+* allow running source with ts-node ([#1074](https://www.github.com/googleapis/nodejs-firestore/issues/1074)) ([f66a089](https://www.github.com/googleapis/nodejs-firestore/commit/f66a08978f11915d8662f964867a966ff75f6e96))
+* remove type dependency on Moment ([#1063](https://www.github.com/googleapis/nodejs-firestore/issues/1063)) ([30008b0](https://www.github.com/googleapis/nodejs-firestore/commit/30008b093a9872e34a83209e94de3dca09e89fe7))
+
+### [3.7.5](https://www.github.com/googleapis/nodejs-firestore/compare/v3.7.4...v3.7.5) (2020-04-25)
+
+
+### Bug Fixes
+
+* return errors from Query.stream() ([#1046](https://www.github.com/googleapis/nodejs-firestore/issues/1046)) ([4b65fca](https://www.github.com/googleapis/nodejs-firestore/commit/4b65fca3d7aa9618ff944c02f059d08f39b4cac3))
+
+### [3.7.4](https://www.github.com/googleapis/nodejs-firestore/compare/v3.7.3...v3.7.4) (2020-04-09)
+
+
+### Bug Fixes
+
+* validate nested arrays in FieldValue ([#1003](https://www.github.com/googleapis/nodejs-firestore/issues/1003)) ([3497691](https://www.github.com/googleapis/nodejs-firestore/commit/3497691754d8b3b0b17385c34362f74ab8a84feb))
+
+### [3.7.3](https://www.github.com/googleapis/nodejs-firestore/compare/v3.7.2...v3.7.3) (2020-03-31)
+
+
+### Bug Fixes
+
+* support array of references for IN queries ([#993](https://www.github.com/googleapis/nodejs-firestore/issues/993)) ([a6d8fe0](https://www.github.com/googleapis/nodejs-firestore/commit/a6d8fe061fcfe0fde7a4fa023b2ec454e2adb432))
+
+### [3.7.2](https://www.github.com/googleapis/nodejs-firestore/compare/v3.7.1...v3.7.2) (2020-03-25)
+
+
+### Bug Fixes
+
+* fix flaky contention test ([#979](https://www.github.com/googleapis/nodejs-firestore/issues/979)) ([f294998](https://www.github.com/googleapis/nodejs-firestore/commit/f294998daab77a0a51c81265945e28eec34db186))
+* fix: use Random Number from `crypto` to generate AutoId ([05b3363](https://www.github.com/googleapis/nodejs-firestore/commit/ce6ea390f2fffcbe796ba1c5b040ee02452e287a))
+
+### [3.7.1](https://www.github.com/googleapis/nodejs-firestore/compare/v3.7.0...v3.7.1) (2020-03-16)
+
+
+### Bug Fixes
+
+* support Query.stream() as first client operation ([#971](https://www.github.com/googleapis/nodejs-firestore/issues/971)) ([a48017c](https://www.github.com/googleapis/nodejs-firestore/commit/a48017c16dbf7819ea45ea2577365b52721c2475))
+
+## [3.7.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.6.0...v3.7.0) (2020-03-11)
+
+
+### Features
+
+* **deps:** update to TypeScript 3.8 ([#962](https://www.github.com/googleapis/nodejs-firestore/issues/962)) ([12982cd](https://www.github.com/googleapis/nodejs-firestore/commit/12982cd9ef6b418b6bc9fa303bb804255b9c906a))
+* add support for Query.limitToLast() ([#954](https://www.github.com/googleapis/nodejs-firestore/issues/954)) ([c89546f](https://www.github.com/googleapis/nodejs-firestore/commit/c89546f5ae83da3845076aeeffcda75f9b208f5c))
+
+## [3.6.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.5.1...v3.6.0) (2020-03-09)
+
+
+### Features
+
+* base transaction retries on error codes ([#953](https://www.github.com/googleapis/nodejs-firestore/issues/953)) ([4a30820](https://www.github.com/googleapis/nodejs-firestore/commit/4a30820876db2ec925efd0ac04482fe9c6882813))
+* deferred client initialization ([#956](https://www.github.com/googleapis/nodejs-firestore/issues/956)) ([301a7e2](https://www.github.com/googleapis/nodejs-firestore/commit/301a7e2870529fc8b14c91ac08c942dececcc3d6))
+* implement Timestamp.valueOf() ([#947](https://www.github.com/googleapis/nodejs-firestore/issues/947)) ([24a96c6](https://www.github.com/googleapis/nodejs-firestore/commit/24a96c65ecbc4df0fc69b9a7f64e9e508fea89b9)), closes [#944](https://www.github.com/googleapis/nodejs-firestore/issues/944)
+
+### [3.5.1](https://www.github.com/googleapis/nodejs-firestore/compare/v3.5.0...v3.5.1) (2020-02-19)
+
+
+### Bug Fixes
+
+* collectionReference.add() validation ([#925](https://www.github.com/googleapis/nodejs-firestore/issues/925)) ([19c2c75](https://www.github.com/googleapis/nodejs-firestore/commit/19c2c75d86c3aab967d21da16598016185ae360b))
+* pass x-goog-request-params header for streaming calls ([#920](https://www.github.com/googleapis/nodejs-firestore/issues/920)) ([cfbe19e](https://www.github.com/googleapis/nodejs-firestore/commit/cfbe19ed4c3cc6bb9ffc7b352de901150b8b9dea))
+* propagate converter in QueryOptions.with() ([#931](https://www.github.com/googleapis/nodejs-firestore/issues/931)) ([e35a098](https://www.github.com/googleapis/nodejs-firestore/commit/e35a098621b872b85a3ab70c6592eba75a929de8))
+* wait for operations to complete before deleting clients ([#915](https://www.github.com/googleapis/nodejs-firestore/issues/915)) ([1e5d63f](https://www.github.com/googleapis/nodejs-firestore/commit/1e5d63fbc39d9c3e6883e79a55e8a26634cd30c5))
+
+## [3.5.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.4.1...v3.5.0) (2020-02-07)
+
+
+### Features
+
+* add google-gax status to exports ([#912](https://www.github.com/googleapis/nodejs-firestore/issues/912)) ([7d97384](https://www.github.com/googleapis/nodejs-firestore/commit/7d9738456525b99507b8819d86a8634b0a1d04c3))
+
+
+### Bug Fixes
+
+* add missing generics on query ([#917](https://www.github.com/googleapis/nodejs-firestore/issues/917)) ([c5b9442](https://www.github.com/googleapis/nodejs-firestore/commit/c5b9442e6620e59e5563ffaf210ad493ec5ed9b2))
+* better parameter naming in path template helpers ([aac02f4](https://www.github.com/googleapis/nodejs-firestore/commit/aac02f463ba13c385a6dc5a4d96e281e0801cc93))
+* retry streaming methods if initial write errored ([#897](https://www.github.com/googleapis/nodejs-firestore/issues/897)) ([2ec0489](https://www.github.com/googleapis/nodejs-firestore/commit/2ec0489127faea88dca95e6dc169efe6e55d330d))
+
+### [3.4.1](https://www.github.com/googleapis/nodejs-firestore/compare/v3.4.0...v3.4.1) (2020-01-22)
+
+
+### Bug Fixes
+
+* do not assume all custom objects have constructors ([#893](https://www.github.com/googleapis/nodejs-firestore/issues/893)) ([f668e8e](https://www.github.com/googleapis/nodejs-firestore/commit/f668e8e4880256223c41c2c3183434e81c7f7945))
+
+## [3.4.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.3.4...v3.4.0) (2020-01-15)
+
+
+### Features
+
+* support serialization of custom objects ([#828](https://www.github.com/googleapis/nodejs-firestore/issues/828)) ([94ddc89](https://www.github.com/googleapis/nodejs-firestore/commit/94ddc897400cafe5a1ee16f3ad0d285411bdd0b2))
+* support serialization of Moment.js types ([#879](https://www.github.com/googleapis/nodejs-firestore/issues/879)) ([9169fae](https://www.github.com/googleapis/nodejs-firestore/commit/9169fae692d219b5fb42004a4eb82e5a5919f087))
+* allow logging to be disabled ([#880](https://www.github.com/googleapis/nodejs-firestore/issues/880)) ([36d75f6](https://www.github.com/googleapis/nodejs-firestore/commit/36d75f6b75d7ede4656636f1d8bf770eb1cb3a80))
+
+
+### Bug Fixes
+
+* don't format log message if logging is disabled ([#874](https://www.github.com/googleapis/nodejs-firestore/issues/874)) ([b7b5fc9](https://www.github.com/googleapis/nodejs-firestore/commit/b7b5fc993d4cece92833c95487efe63320537058))
+* disable non-transactional retries for Code ABORTED ([#881](https://www.github.com/googleapis/nodejs-firestore/issues/881)) ([82273ec](https://www.github.com/googleapis/nodejs-firestore/commit/82273ec0035b2ddae94d8f12791f8a5c55b6560d))
+* manually retry ABORTED reads in transactions ([#883](https://www.github.com/googleapis/nodejs-firestore/issues/883)) ([7562033](https://www.github.com/googleapis/nodejs-firestore/commit/7562033876dc006e77d00b576b2541a7dfd30c66))
+* remove ticks from code comments ([#885](https://www.github.com/googleapis/nodejs-firestore/issues/885)) ([b2740ed](https://www.github.com/googleapis/nodejs-firestore/commit/b2740ed4fb0e7c34fd407e3de4f47f03067171cb))
+
+### [3.3.4](https://www.github.com/googleapis/nodejs-firestore/compare/v3.3.3...v3.3.4) (2020-01-12)
+
+
+### Bug Fixes
+
+* do not release client before retry ([#870](https://www.github.com/googleapis/nodejs-firestore/issues/870)) ([47f7ab5](https://www.github.com/googleapis/nodejs-firestore/commit/47f7ab52f9133064785754ee924d9f8736853eba))
+* proper routing headers ([43472f6](https://www.github.com/googleapis/nodejs-firestore/commit/43472f6bd51a22a5ee27d7fc0f88a9dd97c22336))
+* remove redundant log line ([#868](https://www.github.com/googleapis/nodejs-firestore/issues/868)) ([af3196f](https://www.github.com/googleapis/nodejs-firestore/commit/af3196fe8da2018e0a9842f4f62588ce2c740597))
+
+### [3.3.3](https://www.github.com/googleapis/nodejs-firestore/compare/v3.3.2...v3.3.3) (2020-01-08)
+
+
+### Bug Fixes
+
+* support Objects created with Object.create({}) ([#842](https://www.github.com/googleapis/nodejs-firestore/issues/842)) ([a85f0c3](https://www.github.com/googleapis/nodejs-firestore/commit/a85f0c32eca5d8cf677d621a8ff326623ad5266e))
+* use rejected Promise for terminate() ([#845](https://www.github.com/googleapis/nodejs-firestore/issues/845)) ([f2c4d91](https://www.github.com/googleapis/nodejs-firestore/commit/f2c4d911077c8e5b7713263fc8b2c21bbd50ca11))
+
+### [3.3.2](https://www.github.com/googleapis/nodejs-firestore/compare/v3.3.1...v3.3.2) (2020-01-06)
+
+
+### Bug Fixes
+
+* add quotes to field name to avoid ambiguity ([#860](https://www.github.com/googleapis/nodejs-firestore/issues/860)) ([8caee71](https://www.github.com/googleapis/nodejs-firestore/commit/8caee71f6105e82faf3f6334e69ed5890f977a3a))
+
+### [3.3.1](https://www.github.com/googleapis/nodejs-firestore/compare/v3.3.0...v3.3.1) (2020-01-06)
+
+
+### Bug Fixes
+
+* don't recreate instances when client is idle ([0aa2a8b](https://www.github.com/googleapis/nodejs-firestore/commit/0aa2a8b8d0c76e0cfc6d29c37d143cc9c0b45fec))
+
+## [3.3.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.2.0...v3.3.0) (2020-01-03)
+
+
+### Features
+
+* add Symbol.asyncInterator to Query.stream() ([#843](https://www.github.com/googleapis/nodejs-firestore/issues/843)) ([68795c4](https://www.github.com/googleapis/nodejs-firestore/commit/68795c43ae9ef6b286650228746c7c16f59347f7))
+* use GAX retry config for streams ([#847](https://www.github.com/googleapis/nodejs-firestore/issues/847)) ([218a4c6](https://www.github.com/googleapis/nodejs-firestore/commit/218a4c65afcc55158aac45b98a4ccb28b88c00a1))
+
+
+### Bug Fixes
+
+* increase test timeout ([#846](https://www.github.com/googleapis/nodejs-firestore/issues/846)) ([b94c367](https://www.github.com/googleapis/nodejs-firestore/commit/b94c367e9655f8a6a3553610ebc655877be502ec))
+* retry writes that fail with status code ABORTED ([#854](https://www.github.com/googleapis/nodejs-firestore/issues/854)) ([96f085f](https://www.github.com/googleapis/nodejs-firestore/commit/96f085f3df7c8e6e20dbffb14ebf6ebb533fc036))
+
+## [3.2.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.1.0...v3.2.0) (2019-12-30)
+
+
+### Features
+
+* allow specifying how many idle GRPC channels to keep ([#837](https://www.github.com/googleapis/nodejs-firestore/issues/837)) ([37e93da](https://www.github.com/googleapis/nodejs-firestore/commit/37e93da689f985b6b0f30645435b12179513eb64))
+
+
+### Bug Fixes
+
+* reduce overhead for listDocuments()/listCollections() ([#838](https://www.github.com/googleapis/nodejs-firestore/issues/838)) ([5c870e6](https://www.github.com/googleapis/nodejs-firestore/commit/5c870e615e4774d3d50fc33c17b5da45dcacea4f))
+
+## [3.1.0](https://www.github.com/googleapis/nodejs-firestore/compare/v3.0.0...v3.1.0) (2019-12-19)
+
+
+### Features
+
+* add ability to close channels ([#824](https://www.github.com/googleapis/nodejs-firestore/issues/824)) ([9ef582a](https://www.github.com/googleapis/nodejs-firestore/commit/9ef582aa0508a3d02fb036f741c8c51e5ff4307c))
+
+
+### Bug Fixes
+
+* **deps:** update dependency deep-equal to v2 ([#821](https://www.github.com/googleapis/nodejs-firestore/issues/821)) ([25472e1](https://www.github.com/googleapis/nodejs-firestore/commit/25472e11a0e1a4a5e1931b1652d125f9c8cabf11))
+
+## [3.0.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.6.1...v3.0.0) (2019-12-15)
+
+
+### ⚠ BREAKING CHANGES
+
+* convert Gapic client to TypeScript (#805)
+* remove deprecated timestampInSnapshots setting (#808)
+
+### Features
+
+* convert Gapic client to TypeScript ([#805](https://www.github.com/googleapis/nodejs-firestore/issues/805)) ([5000b2d](https://www.github.com/googleapis/nodejs-firestore/commit/5000b2d4b5c528b66c5a71db343c0e4163d5d8f7))
+* remove deprecated timestampInSnapshots setting ([#808](https://www.github.com/googleapis/nodejs-firestore/issues/808)) ([f37fffc](https://www.github.com/googleapis/nodejs-firestore/commit/f37fffc44fb1ddc8177bd24dfb44d830221e2479))
+
+
+### Bug Fixes
+
+* close GRPC channel when we dispose of clients ([#779](https://www.github.com/googleapis/nodejs-firestore/issues/779)) ([22ef0d0](https://www.github.com/googleapis/nodejs-firestore/commit/22ef0d0229569f0d97ff908b5866264a8de2ca78))
+
+### [2.6.1](https://www.github.com/googleapis/nodejs-firestore/compare/v2.6.0...v2.6.1) (2019-12-05)
+
+
+### Bug Fixes
+
+* **deps:** pin TypeScript below 3.7.0 ([0d4e558](https://www.github.com/googleapis/nodejs-firestore/commit/0d4e558be4111b3524aa3b855b14e63cb486d2c8))
+* **docs:** snippets are now replaced in jsdoc comments ([#795](https://www.github.com/googleapis/nodejs-firestore/issues/795)) ([396bebb](https://www.github.com/googleapis/nodejs-firestore/commit/396bebbe21b4df16b3017d144fd9e505eb99feda))
+
+## [2.6.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.5.0...v2.6.0) (2019-11-01)
+
+
+### Features
+
+* add IN queries support ([#715](https://www.github.com/googleapis/nodejs-firestore/issues/715)) ([00bdf8f](https://www.github.com/googleapis/nodejs-firestore/commit/00bdf8ff81f658c4534adea8d2010a1f68195f45))
+
+## [2.5.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.4.0...v2.5.0) (2019-10-22)
+
+
+### Features
+
+* introduces ARRAY_CONTAINS_ANY and IN to operator enum ([2c8869d](https://www.github.com/googleapis/nodejs-firestore/commit/2c8869d23ad1aef024273b640579624cde97849f))
+
+
+### Bug Fixes
+
+* **deps:** bump google-gax to 1.7.5 ([#786](https://www.github.com/googleapis/nodejs-firestore/issues/786)) ([e5763ba](https://www.github.com/googleapis/nodejs-firestore/commit/e5763baadf7cc424620913a09ca0ed6af4a0971a))
+
+## [2.4.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.3.0...v2.4.0) (2019-10-03)
+
+
+### Bug Fixes
+
+* provide custom error for FieldValue subclasses ([#771](https://www.github.com/googleapis/nodejs-firestore/issues/771)) ([29c3e9b](https://www.github.com/googleapis/nodejs-firestore/commit/29c3e9b))
+* use compatible version of google-gax ([b0c89c5](https://www.github.com/googleapis/nodejs-firestore/commit/b0c89c5))
+
+
+### Features
+
+* ability to specify the Collection Group query scope in the V1 Admin API ([#762](https://www.github.com/googleapis/nodejs-firestore/issues/762)) ([b16cd40](https://www.github.com/googleapis/nodejs-firestore/commit/b16cd40))
+
+## [2.3.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.9...v2.3.0) (2019-09-09)
+
+
+### Features
+
+* load protos from JSON, grpc-fallback support ([#749](https://www.github.com/googleapis/nodejs-firestore/issues/749)) ([6cb9d68](https://www.github.com/googleapis/nodejs-firestore/commit/6cb9d68))
+
+### [2.2.9](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.8...v2.2.9) (2019-08-30)
+
+
+### Bug Fixes
+
+* retrying 13 INTERNAL RPC errors ([#742](https://www.github.com/googleapis/nodejs-firestore/issues/742)) ([431edcb](https://www.github.com/googleapis/nodejs-firestore/commit/431edcb))
+
+### [2.2.8](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.7...v2.2.8) (2019-08-22)
+
+
+### Bug Fixes
+
+* serialization does not work with null objects ([#736](https://www.github.com/googleapis/nodejs-firestore/issues/736)) ([870d6a7](https://www.github.com/googleapis/nodejs-firestore/commit/870d6a7))
+
+### [2.2.7](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.6...v2.2.7) (2019-08-16)
+
+
+### Bug Fixes
+
+* **deps:** use the latest extend ([#728](https://www.github.com/googleapis/nodejs-firestore/issues/728)) ([425bf3d](https://www.github.com/googleapis/nodejs-firestore/commit/425bf3d))
+* add logging to client pool ([#733](https://www.github.com/googleapis/nodejs-firestore/issues/733)) ([a4efa09](https://www.github.com/googleapis/nodejs-firestore/commit/a4efa09))
+
+### [2.2.6](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.5...v2.2.6) (2019-08-02)
+
+
+### Bug Fixes
+
+* allow calls with no request, add JSON proto ([#725](https://www.github.com/googleapis/nodejs-firestore/issues/725)) ([8b0624b](https://www.github.com/googleapis/nodejs-firestore/commit/8b0624b))
+
+### [2.2.5](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.4...v2.2.5) (2019-08-02)
+
+
+### Bug Fixes
+
+* Better error for Collection Group Queries with documentId() cursors ([#720](https://www.github.com/googleapis/nodejs-firestore/issues/720)) ([169286d](https://www.github.com/googleapis/nodejs-firestore/commit/169286d))
+
+### [2.2.4](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.3...v2.2.4) (2019-07-08)
+
+
+### Bug Fixes
+
+* Don't re-open streams on 'error' and 'end' ([#713](https://www.github.com/googleapis/nodejs-firestore/issues/713)) ([104a965](https://www.github.com/googleapis/nodejs-firestore/commit/104a965))
+
+### [2.2.3](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.2...v2.2.3) (2019-06-26)
+
+
+### Bug Fixes
+
+* **docs:** link to reference docs section on googleapis.dev ([#701](https://www.github.com/googleapis/nodejs-firestore/issues/701)) ([d7c89a8](https://www.github.com/googleapis/nodejs-firestore/commit/d7c89a8))
+* Relax validation of FIRESTORE_EMULATOR_HOST in settings() ([#703](https://www.github.com/googleapis/nodejs-firestore/issues/703)) ([daff9de](https://www.github.com/googleapis/nodejs-firestore/commit/daff9de))
+
+### [2.2.2](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.1...v2.2.2) (2019-06-25)
+
+
+### Bug Fixes
+
+* Support non-ISO-8859-1 Collection Names in Queries ([fc6f839](https://www.github.com/googleapis/nodejs-firestore/commit/fc6f839))
+* Unset servicePath when FIRESTORE_EMULATOR_HOST is set ([#696](https://www.github.com/googleapis/nodejs-firestore/issues/696)) ([5a19931](https://www.github.com/googleapis/nodejs-firestore/commit/5a19931))
+* Use new stream rather than pipe ([#700](https://www.github.com/googleapis/nodejs-firestore/issues/700)) ([0370e03](https://www.github.com/googleapis/nodejs-firestore/commit/0370e03))
+
+### [2.2.1](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.0...v2.2.1) (2019-06-14)
+
+
+### Bug Fixes
+
+* **docs:** move to new client docs URL ([#689](https://www.github.com/googleapis/nodejs-firestore/issues/689)) ([58acc46](https://www.github.com/googleapis/nodejs-firestore/commit/58acc46))
+
+## [2.2.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.1.1...v2.2.0) (2019-06-06)
+
+
+### Bug Fixes
+
+* Split settings.host into servicePath and port ([#684](https://www.github.com/googleapis/nodejs-firestore/issues/684)) ([b2cbca5](https://www.github.com/googleapis/nodejs-firestore/commit/b2cbca5))
+* Store large numbers as doubles ([#683](https://www.github.com/googleapis/nodejs-firestore/issues/683)) ([607b3c0](https://www.github.com/googleapis/nodejs-firestore/commit/607b3c0))
+
+
+### Features
+
+* support apiEndpoint override in client constructor ([368bc5c](https://www.github.com/googleapis/nodejs-firestore/commit/368bc5c))
+* Support host, ssl and FIRESTORE_EMULATOR_HOST for endpoint configuration ([#680](https://www.github.com/googleapis/nodejs-firestore/issues/680)) ([d15f29d](https://www.github.com/googleapis/nodejs-firestore/commit/d15f29d))
+
+## [2.1.1](https://www.github.com/googleapis/nodejs-firestore/compare/v2.1.0...v2.1.1) (2019-05-30)
+
+
+### Dependencies
+- deps: Pin @gprc/grpc-js to 0.4.0 ([#668](https://github.com/googleapis/nodejs-firestore/pull/668))
+
+
+ ### Internal / Testing Changes
+- build: remove verbose logging from test scripts ([#665](https://github.com/googleapis/nodejs-firestore/pull/665))
+- build: ignore proto files in test coverage ([#664](https://github.com/googleapis/nodejs-firestore/pull/664))
+
+## [2.1.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.0.0...v2.1.0) (2019-05-28)
+
+
+### Bug Fixes
+
+* Add overloads for doc() and doc(id:string) ([#662](https://www.github.com/googleapis/nodejs-firestore/issues/662)) ([cb189e9](https://www.github.com/googleapis/nodejs-firestore/commit/cb189e9))
+* retry on abort and limit retry count to 10 ([#655](https://www.github.com/googleapis/nodejs-firestore/issues/655)) ([9e97656](https://www.github.com/googleapis/nodejs-firestore/commit/9e97656))
+
+
+### Features
+
+* Support listDocuments()/listCollections() via the Firestore Emulator ([#654](https://www.github.com/googleapis/nodejs-firestore/issues/654)) ([eaf5a4e](https://www.github.com/googleapis/nodejs-firestore/commit/eaf5a4e))
+
+## [2.0.0](https://www.github.com/googleapis/nodejs-firestore/compare/v1.3.0...v2.0.0) (2019-05-20)
+
+
+### ⚠ BREAKING CHANGES
+
+* library now requires Node >= 8.13.0
+* **deprecation:** remove legacy support for array arguments (#625)
+* **deprecation:** remove deprecated getCollections() (#624)
+* upgrade engines field to >=8.10.0 (#608)
+
+### Bug Fixes
+
+* **deps:** update dependency google-gax to ^0.26.0 ([#606](https://www.github.com/googleapis/nodejs-firestore/issues/606)) ([a637a68](https://www.github.com/googleapis/nodejs-firestore/commit/a637a68))
+* Fix client pooling for long-lived listens ([#614](https://www.github.com/googleapis/nodejs-firestore/issues/614)) ([479bc9c](https://www.github.com/googleapis/nodejs-firestore/commit/479bc9c)), closes [firebase/firebase-admin-node#499](https://www.github.com/googleapis/nodejs-firestore/issues/499) [#256](https://www.github.com/googleapis/nodejs-firestore/issues/256)
+* **deps:** update dependency google-gax to v1 ([#615](https://www.github.com/googleapis/nodejs-firestore/issues/615)) ([687a353](https://www.github.com/googleapis/nodejs-firestore/commit/687a353))
+* run the generator ([#616](https://www.github.com/googleapis/nodejs-firestore/issues/616)) ([92b0add](https://www.github.com/googleapis/nodejs-firestore/commit/92b0add))
+* **docs:** revert jsdoc and pin to 3.5.5 ([#627](https://www.github.com/googleapis/nodejs-firestore/issues/627)) ([e22f9c6](https://www.github.com/googleapis/nodejs-firestore/commit/e22f9c6))
+* Support more than 100 long-lived streams ([#623](https://www.github.com/googleapis/nodejs-firestore/issues/623)) ([9474e3f](https://www.github.com/googleapis/nodejs-firestore/commit/9474e3f))
+
+
+### Build System
+
+* upgrade engines field to >=8.10.0 ([#608](https://www.github.com/googleapis/nodejs-firestore/issues/608)) ([32485f4](https://www.github.com/googleapis/nodejs-firestore/commit/32485f4))
+* upgrade engines field to >=8.13.0 ([#636](https://www.github.com/googleapis/nodejs-firestore/issues/636)) ([a5db7d8](https://www.github.com/googleapis/nodejs-firestore/commit/a5db7d8))
+
+
+### Code Refactoring
+
+* **deprecation:** remove deprecated getCollections() ([#624](https://www.github.com/googleapis/nodejs-firestore/issues/624)) ([43ac9c6](https://www.github.com/googleapis/nodejs-firestore/commit/43ac9c6))
+* **deprecation:** remove legacy support for array arguments ([#625](https://www.github.com/googleapis/nodejs-firestore/issues/625)) ([54dd405](https://www.github.com/googleapis/nodejs-firestore/commit/54dd405))
+
+## v1.3.0
+
+04-26-2019 16:54 PDT
+
+### New Features
+- feature: Adding CollectionGroup queries ([#578](https://github.com/googleapis/nodejs-firestore/pull/578))([#595](https://github.com/googleapis/nodejs-firestore/pull/595))
+
+### Dependencies
+- chore(deps): update dependency nyc to v14 ([#600](https://github.com/googleapis/nodejs-firestore/pull/600))
+- chore(deps): update dependency typescript to ~3.4.0
+- docs: add .readme-metadata.json and generate new README.md
+
+### Documentation
+- docs: Add example for Precondition ([#601](https://github.com/googleapis/nodejs-firestore/pull/601))
+
+## v1.2.0
+
+03-21-2019 14:17 PDT
+
+### New Features
+- feature: Release the V1 Admin API ([#590](https://github.com/googleapis/nodejs-firestore/pull/590))
+ The Firestore Node SDK now exposes the Firestore Admin API (via `v1.FirebaseAdminClient()`).
+
+### Implementation Changes
+- deps/refactor: Removing @google-cloud/projectify ([#564](https://github.com/googleapis/nodejs-firestore/pull/564))
+
+### Dependencies
+- chore(deps): update dependency hard-rejection to v2
+
+### Documentation
+- fix(docs): add namespaces so docs are generated ([#591](https://github.com/googleapis/nodejs-firestore/pull/591))
+- docs: fix typo in doc strings ([#585](https://github.com/googleapis/nodejs-firestore/pull/585))
+
+### Internal / Testing Changes
+- chore: publish to npm using wombat ([#586](https://github.com/googleapis/nodejs-firestore/pull/586))
+- build: use per-repo publish token ([#582](https://github.com/googleapis/nodejs-firestore/pull/582))
+- refactor: update json import paths ([#580](https://github.com/googleapis/nodejs-firestore/pull/580))
+
+## v1.1.0
+
+03-10-2019 20:09 PDT
+
+### New Features
+- feature: Added `FieldValue.increment()`, which can be used in `create()`, `update()` and `set(..., {merge:true})` to
+ increment or decrement numeric field values safely without transactions ([#444](https://github.com/googleapis/nodejs-firestore/pull/444))
+
+### Implementation Changes
+- fix: Allow async functions ([#576](https://github.com/googleapis/nodejs-firestore/pull/576))
+- fix: Don't call stream.end() on Watch ended by server ([#565](https://github.com/googleapis/nodejs-firestore/pull/565))
+
+### Internal / Testing Changes
+- refactor: async/await to test/order.ts ([#566](https://github.com/googleapis/nodejs-firestore/pull/566))
+- build: Add docuploader credentials to node publish jobs ([#572](https://github.com/googleapis/nodejs-firestore/pull/572))
+- build: update release config ([#570](https://github.com/googleapis/nodejs-firestore/pull/570))
+- build: use node10 to run samples-test, system-test etc ([#571](https://github.com/googleapis/nodejs-firestore/pull/571))
+
+## v1.0.2
+
+03-04-2019 13:32 PST
+
+### Implementation Changes
+
+- fix: throw on invalid credentials ([#548](https://github.com/googleapis/nodejs-firestore/pull/548))
+
+### Dependencies
+
+- fix(deps): update dependency google-gax to ^0.25.0 ([#535](https://github.com/googleapis/nodejs-firestore/pull/535))
+- chore(deps): update dependency mocha to v6
+- chore(deps): update dependency duplexify to v4 ([#539](https://github.com/googleapis/nodejs-firestore/pull/539))
+
+### Documentation
+
+- docs: update comments on protos ([#559](https://github.com/googleapis/nodejs-firestore/pull/559))
+- docs: update API doc comments ([#557](https://github.com/googleapis/nodejs-firestore/pull/557))
+- docs: update links in contrib guide ([#550](https://github.com/googleapis/nodejs-firestore/pull/550))
+- docs: add lint/fix example to contributing guide ([#541](https://github.com/googleapis/nodejs-firestore/pull/541))
+- docs: fix example comments ([#540](https://github.com/googleapis/nodejs-firestore/pull/540))
+- doc: show GA message in README.md ([#536](https://github.com/googleapis/nodejs-firestore/pull/536))
+- Add note about Datastore mode ([#552](https://github.com/googleapis/nodejs-firestore/pull/552))
+- chore: move CONTRIBUTING.md to root ([#543](https://github.com/googleapis/nodejs-firestore/pull/543))
+- docs: update contributing path in README ([#544](https://github.com/googleapis/nodejs-firestore/pull/544))
+
+### Internal / Testing Changes
+
+- refactor(typescript): enable noImplicitAny ([#553](https://github.com/googleapis/nodejs-firestore/pull/553))
+- chore: update array types ([#555](https://github.com/googleapis/nodejs-firestore/pull/555))
+- Finish TypeScript Migration ([#512](https://github.com/googleapis/nodejs-firestore/pull/512))
+- refactor: improve generated code style. ([#538](https://github.com/googleapis/nodejs-firestore/pull/538))
+- Remove unhandled Promise rejection warning ([#556](https://github.com/googleapis/nodejs-firestore/pull/556))
+- build: use linkinator for docs test ([#549](https://github.com/googleapis/nodejs-firestore/pull/549))
+- build: create docs test npm scripts ([#547](https://github.com/googleapis/nodejs-firestore/pull/547))
+- build: test using @grpc/grpc-js in CI ([#546](https://github.com/googleapis/nodejs-firestore/pull/546))
+
+## v1.0.1
+
+01-29-2019 14:02 PST
+
+# Documentation
+
+- doc: update README.md to show this library as GA ([#532](https://github.com/googleapis/nodejs-firestore/pull/532))
+- fix(samples): constructor doesn't need project or cred options ([#533](https://github.com/googleapis/nodejs-firestore/pull/533))
+
+## v1.0.0
+
+01-29-2019 12:12 PST
+
+This is the Firestore Node.js Client Library GA release.
+
+## v0.21.0
+
+01-25-2019 12:21 PST
+
+This release brings in google-gax update to 0.24.0 which had its dependency google-auth-library updated to 3.0.0^ that swaps out axios in favour of gaxios and addresses an issue using the library behind a proxy (https://github.com/googleapis/nodejs-firestore/issues/493).
+
+### Dependencies
+- chore(deps): update dependency ts-node to v8 ([#526](https://github.com/googleapis/nodejs-firestore/pull/526))
+- fix(deps): update dependency google-gax to ^0.24.0 ([#529](https://github.com/googleapis/nodejs-firestore/pull/529))
+
+### Documentation
+- build: ignore googleapis.com in doc link check ([#527](https://github.com/googleapis/nodejs-firestore/pull/527))
+- docs: fix import links in the jsdocs ([#524](https://github.com/googleapis/nodejs-firestore/pull/524))
+
+### Internal / Testing Changes
+- chore: update year in the license headers. ([#523](https://github.com/googleapis/nodejs-firestore/pull/523))
+
+## v0.20.0
+
+01-16-2019 13:14 PST
+
+#### BREAKING: The `timestampsInSnapshots` default has changed to true.
+The `timestampsInSnapshots` setting is now enabled by default so timestamp
+fields read from a `DocumentSnapshot` will be returned as `Timestamp` objects
+instead of `Date`. Any code expecting to receive a `Date` object must be
+updated.
+
+#### DEPRECATED: `Firestore.v1beta1` replaced by `Firestore.v1`
+If you are currently using `Firestore.v1beta1.FirestoreClient`, you must switch
+to `Firestore.v1.FirestoreClient`. No other changes should be required as the
+API is 100% identical.
+
+### Bug Fixes
+- fix: getAll function signature to allow array destructuring ([#515](https://github.com/googleapis/nodejs-firestore/pull/515))
+- fix: update grpc retry config ([#464](https://github.com/googleapis/nodejs-firestore/pull/464))
+
+### New Features
+- feat: update to v1 protos ([#516](https://github.com/googleapis/nodejs-firestore/pull/516))
+- feat: add additional field transform types ([#521](https://github.com/googleapis/nodejs-firestore/pull/521))
+
+### Dependencies
+- fix(deps): update dependency google-gax to ^0.23.0 ([#518](https://github.com/googleapis/nodejs-firestore/pull/518))
+
+### Documentation
+- fix(docs): remove unused long running operations types
+- docs: elaborate on QuerySnapshot.forEach ([#480](https://github.com/googleapis/nodejs-firestore/pull/480))
+- docs: update doc writetime ([#475](https://github.com/googleapis/nodejs-firestore/pull/475))
+- docs: Fix example for writeTime ([#474](https://github.com/googleapis/nodejs-firestore/pull/474))
+- chore: update license file ([#473](https://github.com/googleapis/nodejs-firestore/pull/473))
+- docs: update readme badges ([#470](https://github.com/googleapis/nodejs-firestore/pull/470))
+
+### Internal / Testing Changes
+- build: check broken links in generated docs ([#511](https://github.com/googleapis/nodejs-firestore/pull/511))
+- chore(build): inject yoshi automation key ([#492](https://github.com/googleapis/nodejs-firestore/pull/492))
+- chore: update nyc and eslint configs ([#491](https://github.com/googleapis/nodejs-firestore/pull/491))
+- chore: fix publish.sh permission +x ([#489](https://github.com/googleapis/nodejs-firestore/pull/489))
+- fix(build): fix Kokoro release script ([#488](https://github.com/googleapis/nodejs-firestore/pull/488))
+- build: add Kokoro configs for autorelease ([#487](https://github.com/googleapis/nodejs-firestore/pull/487))
+- chore: add synth.metadata ([#485](https://github.com/googleapis/nodejs-firestore/pull/485))
+- chore: always nyc report before calling codecov ([#482](https://github.com/googleapis/nodejs-firestore/pull/482))
+- chore: nyc ignore build/test by default ([#479](https://github.com/googleapis/nodejs-firestore/pull/479))
+- chore(build): update the prettier config ([#476](https://github.com/googleapis/nodejs-firestore/pull/476))
+- chore(deps): update dependency typescript to ~3.2.0 ([#467](https://github.com/googleapis/nodejs-firestore/pull/467))
+- fix(build): fix system key decryption ([#468](https://github.com/googleapis/nodejs-firestore/pull/468))
+- Adding array-contains to error message ([#465](https://github.com/googleapis/nodejs-firestore/pull/465))
+
+## v0.17.0
+
+### Implementation Changes
+- Regenerate library with synth.py customizations ([#345](https://github.com/googleapis/nodejs-firestore/pull/345))
+ - contains some documentation and internal timeout changes
+- Converting backoff.js to TypeScript ([#328](https://github.com/googleapis/nodejs-firestore/pull/328))
+- Making .dotChanges a method ([#324](https://github.com/googleapis/nodejs-firestore/pull/324))
+
+### Dependencies
+- chore(deps): update dependency nyc to v13 ([#329](https://github.com/googleapis/nodejs-firestore/pull/329))
+- fix(deps): update dependency google-gax to ^0.19.0 ([#325](https://github.com/googleapis/nodejs-firestore/pull/325))
+
+### Documentation
+- Fix DocumentReference.get() docs ([#332](https://github.com/googleapis/nodejs-firestore/pull/332))
+
+### Internal / Testing Changes
+- Retry npm install in CI ([#341](https://github.com/googleapis/nodejs-firestore/pull/341))
+- make synth.py generate library to ./dev ([#337](https://github.com/googleapis/nodejs-firestore/pull/337))
+- Revert "Re-generate library using /synth.py ([#331](https://github.com/googleapis/nodejs-firestore/pull/331))" ([#334](https://github.com/googleapis/nodejs-firestore/pull/334))
+- Re-generate library using /synth.py ([#331](https://github.com/googleapis/nodejs-firestore/pull/331))
diff --git a/handwritten/firestore/CODE_OF_CONDUCT.md b/handwritten/firestore/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000000..2add2547a81
--- /dev/null
+++ b/handwritten/firestore/CODE_OF_CONDUCT.md
@@ -0,0 +1,94 @@
+
+# Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of
+experience, education, socio-economic status, nationality, personal appearance,
+race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, or to ban temporarily or permanently any
+contributor for other behaviors that they deem inappropriate, threatening,
+offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+This Code of Conduct also applies outside the project spaces when the Project
+Steward has a reasonable belief that an individual's behavior may have a
+negative impact on the project or its community.
+
+## Conflict Resolution
+
+We do not believe that all conflict is bad; healthy debate and disagreement
+often yield positive results. However, it is never okay to be disrespectful or
+to engage in behavior that violates the project’s code of conduct.
+
+If you see someone violating the code of conduct, you are encouraged to address
+the behavior directly with those involved. Many issues can be resolved quickly
+and easily, and this gives people more control over the outcome of their
+dispute. If you are unable to resolve the matter for any reason, or if the
+behavior is threatening or harassing, report it. We are dedicated to providing
+an environment where participants feel welcome and safe.
+
+Reports should be directed to *googleapis-stewards@google.com*, the
+Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to
+receive and address reported violations of the code of conduct. They will then
+work with a committee consisting of representatives from the Open Source
+Programs Office and the Google Open Source Strategy team. If for any reason you
+are uncomfortable reaching out to the Project Steward, please email
+opensource@google.com.
+
+We will investigate every complaint, but you may not receive a direct response.
+We will use our discretion in determining when and how to follow up on reported
+incidents, which may range from not taking action to permanent expulsion from
+the project and project-sponsored spaces. We will notify the accused of the
+report and provide them an opportunity to discuss it before any action is taken.
+The identity of the reporter will be omitted from the details of the report
+supplied to the accused. In potentially harmful situations, such as ongoing
+harassment or threats to anyone's safety, we may take action without notice.
+
+## Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
+available at
+https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
\ No newline at end of file
diff --git a/handwritten/firestore/CONTRIBUTING.md b/handwritten/firestore/CONTRIBUTING.md
new file mode 100644
index 00000000000..29f37109686
--- /dev/null
+++ b/handwritten/firestore/CONTRIBUTING.md
@@ -0,0 +1,75 @@
+# How to become a contributor and submit your own code
+
+**Table of contents**
+
+* [Contributor License Agreements](#contributor-license-agreements)
+* [Contributing a patch](#contributing-a-patch)
+* [Running the tests](#running-the-tests)
+* [Releasing the library](#releasing-the-library)
+
+## Contributor License Agreements
+
+We'd love to accept your sample apps and patches! Before we can take them, we
+have to jump a couple of legal hurdles.
+
+Please fill out either the individual or corporate Contributor License Agreement
+(CLA).
+
+ * If you are an individual writing original source code and you're sure you
+ own the intellectual property, then you'll need to sign an [individual CLA](https://developers.google.com/open-source/cla/individual).
+ * If you work for a company that wants to allow you to contribute your work,
+ then you'll need to sign a [corporate CLA](https://developers.google.com/open-source/cla/corporate).
+
+Follow either of the two links above to access the appropriate CLA and
+instructions for how to sign and return it. Once we receive it, we'll be able to
+accept your pull requests.
+
+## Contributing A Patch
+
+1. Submit an issue describing your proposed change to the repo in question.
+1. The repo owner will respond to your issue promptly.
+1. If your proposed change is accepted, and you haven't already done so, sign a
+ Contributor License Agreement (see details above).
+1. Fork the desired repo, develop and test your code changes.
+1. Ensure that your code adheres to the existing style in the code to which
+ you are contributing.
+1. Ensure that your code has an appropriate set of tests which all pass.
+1. Title your pull request following [Conventional Commits](https://www.conventionalcommits.org/) styling.
+1. Submit a pull request.
+
+### Before you begin
+
+1. [Select or create a Cloud Platform project][projects].
+1. [Enable the Cloud Firestore API][enable_api].
+1. [Set up authentication with a service account][auth] so you can access the
+ API from your local workstation.
+
+
+## Running the tests
+
+1. [Prepare your environment for Node.js setup][setup].
+
+1. Install dependencies:
+
+ npm install
+
+1. Run the tests:
+
+ # Run unit tests.
+ npm test
+
+ # Run sample integration tests.
+ npm run samples-test
+
+ # Run all system tests.
+ npm run system-test
+
+1. Lint (and maybe fix) any changes:
+
+ npm run fix
+
+[setup]: https://cloud.google.com/nodejs/docs/setup
+[projects]: https://console.cloud.google.com/project
+[billing]: https://support.google.com/cloud/answer/6293499#enable-billing
+[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=firestore.googleapis.com
+[auth]: https://cloud.google.com/docs/authentication/getting-started
\ No newline at end of file
diff --git a/handwritten/firestore/LICENSE b/handwritten/firestore/LICENSE
new file mode 100644
index 00000000000..d6456956733
--- /dev/null
+++ b/handwritten/firestore/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/handwritten/firestore/README.md b/handwritten/firestore/README.md
new file mode 100644
index 00000000000..71227001057
--- /dev/null
+++ b/handwritten/firestore/README.md
@@ -0,0 +1,235 @@
+[//]: # "This README.md file is auto-generated, all changes to this file will be lost."
+[//]: # "To regenerate it, use `python -m synthtool`."
+
+
+# [Cloud Firestore: Node.js Client](https://github.com/googleapis/nodejs-firestore)
+
+[](https://cloud.google.com/terms/launch-stages)
+[](https://www.npmjs.com/package/@google-cloud/firestore)
+
+
+
+
+This is the Node.js Server SDK for [Google Cloud Firestore](https://firebase.google.com/docs/firestore/). Google Cloud Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development.
+
+This Cloud Firestore Server SDK uses Google’s Cloud Identity and Access Management for authentication and should only be used in trusted environments. Your Cloud Identity credentials allow you bypass all access restrictions and provide read and write access to all data in your Cloud Firestore project.
+
+The Cloud Firestore Server SDKs are designed to manage the full set of data in your Cloud Firestore project and work best with reliable network connectivity. Data operations performed via these SDKs directly access the Cloud Firestore backend and all document reads and writes are optimized for high throughput.
+
+Applications that use Google's Server SDKs should not be used in end-user environments, such as on phones or on publicly hosted websites. If you are developing a Web or Node.js application that accesses Cloud Firestore on behalf of end users, use the firebase Client SDK.
+
+**Note:** This Cloud Firestore Server SDK does not support Firestore databases created in [Datastore mode](https://cloud.google.com/datastore/docs/firestore-or-datastore#in_datastore_mode). To access these databases, use the [Datastore SDK](https://www.npmjs.com/package/@google-cloud/datastore).
+
+
+A comprehensive list of changes in each version may be found in
+[the CHANGELOG](https://github.com/googleapis/nodejs-firestore/blob/main/CHANGELOG.md).
+
+* [Cloud Firestore Node.js Client API Reference][client-docs]
+* [Cloud Firestore Documentation][product-docs]
+* [github.com/googleapis/nodejs-firestore](https://github.com/googleapis/nodejs-firestore)
+
+Read more about the client libraries for Cloud APIs, including the older
+Google APIs Client Libraries, in [Client Libraries Explained][explained].
+
+[explained]: https://cloud.google.com/apis/docs/client-libraries-explained
+
+**Table of contents:**
+
+
+* [Quickstart](#quickstart)
+ * [Before you begin](#before-you-begin)
+ * [Installing the client library](#installing-the-client-library)
+ * [Using the client library](#using-the-client-library)
+* [Samples](#samples)
+* [Versioning](#versioning)
+* [Contributing](#contributing)
+* [License](#license)
+
+## Quickstart
+
+### Before you begin
+
+1. [Select or create a Cloud Platform project][projects].
+1. [Enable the Cloud Firestore API][enable_api].
+1. [Set up authentication][auth] so you can access the
+ API from your local workstation.
+
+### Installing the client library
+
+```bash
+npm install @google-cloud/firestore
+```
+
+
+### Using the client library
+
+```javascript
+const {Firestore} = require('@google-cloud/firestore');
+
+// Create a new client
+const firestore = new Firestore();
+
+async function quickstart() {
+ // Obtain a document reference.
+ const document = firestore.doc('posts/intro-to-firestore');
+
+ // Enter new data into the document.
+ await document.set({
+ title: 'Welcome to Firestore',
+ body: 'Hello World',
+ });
+ console.log('Entered new data into the document');
+
+ // Update an existing document.
+ await document.update({
+ body: 'My first Firestore app',
+ });
+ console.log('Updated an existing document');
+
+ // Read the document.
+ const doc = await document.get();
+ console.log('Read the document');
+
+ // Delete the document.
+ await document.delete();
+ console.log('Deleted the document');
+}
+quickstart();
+
+```
+
+### Using the client library with Pipelines
+
+```javascript
+
+const {Firestore} = require('@google-cloud/firestore');
+
+// Require/import Pipelines from '@google-cloud/firestore/pipelines'
+const {field} = require('@google-cloud/firestore/pipelines');
+
+// Create a new client
+const firestore = new Firestore({
+ projectId: 'firestore-sdk-nightly',
+ databaseId: 'enterprise'
+});
+
+async function pipelinesQuickstart() {
+ // Obtain a collection reference.
+ const collection = firestore.collection('books');
+
+ // Enter new documents into the document.
+ await collection.add({
+ "title": "Whispers of the Cobalt Sea",
+ "price": 12.99,
+ "author": "Elara Vance",
+ "yearPublished": 2023
+ });
+ await collection.add({
+ "title": "The Antigravity Cat's Guide to Napping",
+ "price": 24.50,
+ "author": "Mittens the IV",
+ "yearPublished": 2026
+ });
+ console.log('Entered new documents into the collection.');
+
+ // Define a Pipeline query that selects books published this century,
+ // orders them by price, and computes a discounted price (20% off).
+ const pipeline = firestore.pipeline().collection('books')
+ .where(field('yearPublished').greaterThanOrEqual(2000))
+ .sort(field('price').ascending())
+ .select('title', 'author', field('price').multiply(0.8).as('discountedPrice'));
+
+ // Execute the pipeline
+ const pipelineSnapshot = await pipeline.execute();
+ console.log('Executed the Pipeline.');
+
+ console.log('Results:');
+ pipelineSnapshot.results.forEach(pipelineResult=> {
+ console.log(pipelineResult.data());
+ });
+}
+pipelinesQuickstart();
+
+```
+
+
+## Samples
+
+Samples are in the [`samples/`](https://github.com/googleapis/nodejs-firestore/tree/main/samples) directory. Each sample's `README.md` has instructions for running its sample.
+
+| Sample | Source Code | Try it |
+| --------------------------- | --------------------------------- | ------ |
+| Limit-to-last-query | [source code](https://github.com/googleapis/nodejs-firestore/blob/main/samples/limit-to-last-query.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-firestore&page=editor&open_in_editor=samples/limit-to-last-query.js,samples/README.md) |
+| Pipelines-quickstart | [source code](https://github.com/googleapis/nodejs-firestore/blob/main/samples/pipelines-quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-firestore&page=editor&open_in_editor=samples/pipelines-quickstart.js,samples/README.md) |
+| Quickstart | [source code](https://github.com/googleapis/nodejs-firestore/blob/main/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-firestore&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) |
+| Solution-counters | [source code](https://github.com/googleapis/nodejs-firestore/blob/main/samples/solution-counters.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-firestore&page=editor&open_in_editor=samples/solution-counters.js,samples/README.md) |
+
+
+
+The [Cloud Firestore Node.js Client API Reference][client-docs] documentation
+also contains samples.
+
+## Supported Node.js Versions
+
+Our client libraries follow the [Node.js release schedule](https://github.com/nodejs/release#release-schedule).
+Libraries are compatible with all current _active_ and _maintenance_ versions of
+Node.js.
+If you are using an end-of-life version of Node.js, we recommend that you update
+as soon as possible to an actively supported LTS version.
+
+Google's client libraries support legacy versions of Node.js runtimes on a
+best-efforts basis with the following warnings:
+
+* Legacy versions are not tested in continuous integration.
+* Some security patches and features cannot be backported.
+* Dependencies cannot be kept up-to-date.
+
+Client libraries targeting some end-of-life versions of Node.js are available, and
+can be installed through npm [dist-tags](https://docs.npmjs.com/cli/dist-tag).
+The dist-tags follow the naming convention `legacy-(version)`.
+For example, `npm install @google-cloud/firestore@legacy-8` installs client libraries
+for versions compatible with Node.js 8.
+
+## Versioning
+
+This library follows [Semantic Versioning](http://semver.org/).
+
+
+
+This library is considered to be **stable**. The code surface will not change in backwards-incompatible ways
+unless absolutely necessary (e.g. because of critical security issues) or with
+an extensive deprecation period. Issues and requests against **stable** libraries
+are addressed with the highest priority.
+
+
+
+
+
+
+More Information: [Google Cloud Platform Launch Stages][launch_stages]
+
+[launch_stages]: https://cloud.google.com/terms/launch-stages
+
+## Contributing
+
+Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-firestore/blob/main/CONTRIBUTING.md).
+
+Please note that this `README.md`, the `samples/README.md`,
+and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`)
+are generated from a central template. To edit one of these files, make an edit
+to its templates in
+[directory](https://github.com/googleapis/synthtool).
+
+## License
+
+Apache Version 2.0
+
+See [LICENSE](https://github.com/googleapis/nodejs-firestore/blob/main/LICENSE)
+
+[client-docs]: https://cloud.google.com/nodejs/docs/reference/firestore/latest
+[product-docs]: https://cloud.google.com/firestore
+[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png
+[projects]: https://console.cloud.google.com/project
+[billing]: https://support.google.com/cloud/answer/6293499#enable-billing
+[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=firestore.googleapis.com
+[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local
diff --git a/handwritten/firestore/api-report/firestore.api.md b/handwritten/firestore/api-report/firestore.api.md
new file mode 100644
index 00000000000..73e85878b01
--- /dev/null
+++ b/handwritten/firestore/api-report/firestore.api.md
@@ -0,0 +1,2947 @@
+## API Report File for "@google-cloud/firestore"
+
+> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
+
+```ts
+
+import { Duplex } from 'stream';
+import * as firestore from '@google-cloud/firestore';
+import { google } from '../protos/firestore_v1_proto_api';
+import { google as google_2 } from '../../protos/firestore_v1_proto_api';
+import { GoogleError } from 'google-gax';
+import * as proto from '../protos/firestore_v1_proto_api';
+import * as protos from '../../protos/firestore_v1_proto_api';
+import { Readable } from 'stream';
+import { Span as Span_2 } from '@opentelemetry/api';
+
+// @beta
+function abs(expr: Expression): FunctionExpression;
+
+// @beta
+function abs(fieldName: string): FunctionExpression;
+
+// @beta
+function add(first: Expression, second: Expression | unknown): FunctionExpression;
+
+// @beta
+function add(fieldName: string, second: Expression | unknown): FunctionExpression;
+
+// @public
+export class Aggregate {
+ constructor(alias: string, aggregateType: AggregateType, fieldPath?: (string | FieldPath) | undefined);
+ // (undocumented)
+ readonly aggregateType: AggregateType;
+ // (undocumented)
+ readonly alias: string;
+ // (undocumented)
+ readonly fieldPath?: (string | FieldPath) | undefined;
+ // @internal
+ toProto(): IAggregation;
+}
+
+// @public
+export class AggregateField implements firestore.AggregateField {
+ // (undocumented)
+ readonly aggregateType: AggregateType;
+ static average(field: string | FieldPath): AggregateField;
+ static count(): AggregateField;
+ // @internal
+ readonly _field?: string | FieldPath;
+ isEqual(other: AggregateField): boolean;
+ static sum(field: string | FieldPath): AggregateField;
+ readonly type = "AggregateField";
+}
+
+// @public
+export type AggregateFieldType = ReturnType | ReturnType | ReturnType;
+
+// Warning: (ae-forgotten-export) The symbol "HasUserData" needs to be exported by the entry point index.d.ts
+//
+// @beta
+class AggregateFunction implements AggregateFunction, HasUserData {
+ constructor(name: string, params: Expression[]);
+ as(name: string): AliasedAggregate;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ _createdFromLiteral: boolean;
+ // (undocumented)
+ expressionType: firestore.Pipelines.ExpressionType;
+ // (undocumented)
+ _protoValueType: "ProtoValue";
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "Serializer" needs to be exported by the entry point index.d.ts
+ //
+ // (undocumented)
+ _toProto(serializer: Serializer): api.IValue;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _validateUserData(ignoreUndefinedProperties: boolean): void;
+}
+
+// @public
+export class AggregateQuery implements firestore.AggregateQuery {
+ // @internal
+ constructor(_query: Query, _aggregates: AggregateSpecType);
+ explain(options?: firestore.ExplainOptions): Promise>>;
+ get(): Promise>;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "QuerySnapshotResponse" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ _get(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions): Promise>>;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "QueryResponse" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ _getResponse(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions, explainOptions?: firestore.ExplainOptions): Promise>>;
+ isEqual(other: firestore.AggregateQuery): boolean;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ _pipeline(): Pipeline;
+ get query(): Query;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _stream(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions, explainOptions?: firestore.ExplainOptions): Readable;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ toProto(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions, explainOptions?: firestore.ExplainOptions): api.IRunAggregationQueryRequest;
+}
+
+// @public
+export class AggregateQuerySnapshot implements firestore.AggregateQuerySnapshot {
+ // @internal
+ constructor(_query: AggregateQuery, _readTime: Timestamp, _data: firestore.AggregateSpecData);
+ data(): firestore.AggregateSpecData;
+ isEqual(other: firestore.AggregateQuerySnapshot): boolean;
+ get query(): AggregateQuery;
+ get readTime(): Timestamp;
+}
+
+// @public
+export interface AggregateSpec {
+ // (undocumented)
+ [field: string]: AggregateFieldType;
+}
+
+// @public
+export type AggregateType = 'count' | 'avg' | 'sum';
+
+// @beta
+class AliasedAggregate implements AliasedAggregate, HasUserData {
+ constructor(_aggregate: AggregateFunction, _alias: string);
+ // (undocumented)
+ readonly _aggregate: AggregateFunction;
+ // (undocumented)
+ readonly _alias: string;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ _createdFromLiteral: boolean;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _validateUserData(ignoreUndefinedProperties: boolean): void;
+}
+
+// @beta
+class AliasedExpression implements firestore.Pipelines.Selectable, HasUserData {
+ constructor(_expr: Expression, _alias: string);
+ // (undocumented)
+ readonly _alias: string;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ _createdFromLiteral: boolean;
+ // (undocumented)
+ readonly _expr: Expression;
+ // (undocumented)
+ expressionType: firestore.Pipelines.ExpressionType;
+ // (undocumented)
+ selectable: true;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _validateUserData(ignoreUndefinedProperties: boolean): void;
+}
+
+// @beta
+function and(first: BooleanExpression, second: BooleanExpression, ...more: BooleanExpression[]): BooleanExpression;
+
+// @beta
+function array(elements: unknown[]): FunctionExpression;
+
+// @beta
+function arrayConcat(firstArray: Expression, secondArray: Expression | unknown[], ...otherArrays: Array): FunctionExpression;
+
+// @beta
+function arrayConcat(firstArrayField: string, secondArray: Expression | unknown[], ...otherArrays: Array): FunctionExpression;
+
+// @beta
+function arrayContains(array: Expression, element: Expression): BooleanExpression;
+
+// @beta
+function arrayContains(array: Expression, element: unknown): BooleanExpression;
+
+// @beta
+function arrayContains(fieldName: string, element: Expression): BooleanExpression;
+
+// @beta
+function arrayContains(fieldName: string, element: unknown): BooleanExpression;
+
+// @beta
+function arrayContainsAll(array: Expression, values: Array): BooleanExpression;
+
+// @beta
+function arrayContainsAll(fieldName: string, values: Array): BooleanExpression;
+
+// @beta
+function arrayContainsAll(array: Expression, arrayExpression: Expression): BooleanExpression;
+
+// @beta
+function arrayContainsAll(fieldName: string, arrayExpression: Expression): BooleanExpression;
+
+// @beta
+function arrayContainsAny(array: Expression, values: Array): BooleanExpression;
+
+// @beta
+function arrayContainsAny(fieldName: string, values: Array): BooleanExpression;
+
+// @beta
+function arrayContainsAny(array: Expression, values: Expression): BooleanExpression;
+
+// @beta
+function arrayContainsAny(fieldName: string, values: Expression): BooleanExpression;
+
+// @beta
+function arrayGet(arrayField: string, index: number): FunctionExpression;
+
+// @beta
+function arrayGet(arrayField: string, indexExpr: Expression): FunctionExpression;
+
+// @beta
+function arrayGet(arrayExpression: Expression, index: number): FunctionExpression;
+
+// @beta
+function arrayGet(arrayExpression: Expression, indexExpr: Expression): FunctionExpression;
+
+// @beta
+function arrayLength(fieldName: string): FunctionExpression;
+
+// @beta
+function arrayLength(array: Expression): FunctionExpression;
+
+// @beta
+function arrayReverse(fieldName: string): FunctionExpression;
+
+// @beta
+function arrayReverse(arrayExpression: Expression): FunctionExpression;
+
+// @beta
+function arraySum(fieldName: string): FunctionExpression;
+
+// @beta
+function arraySum(expression: Expression): FunctionExpression;
+
+// @beta
+function ascending(expr: Expression): Ordering;
+
+// @beta
+function ascending(fieldName: string): Ordering;
+
+// @beta
+function average(expression: Expression): AggregateFunction;
+
+// @beta
+function average(fieldName: string): AggregateFunction;
+
+// @beta
+abstract class BooleanExpression extends Expression implements firestore.Pipelines.BooleanExpression {
+ conditional(thenExpr: Expression, elseExpr: Expression): FunctionExpression;
+ countIf(): AggregateFunction;
+ // (undocumented)
+ abstract get _expr(): Expression;
+ ifError(catchValue: BooleanExpression): BooleanExpression;
+ ifError(catchValue: boolean): BooleanExpression;
+ ifError(catchValue: Expression): FunctionExpression;
+ ifError(catchValue: unknown): FunctionExpression;
+ not(): BooleanExpression;
+ // (undocumented)
+ _toProto(serializer: Serializer): api.IValue;
+ // (undocumented)
+ _validateUserData(ignoreUndefinedProperties: boolean): void;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class BulkWriter {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ constructor(firestore: Firestore, options?: firestore.BulkWriterOptions);
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ close(): Promise;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ create(documentRef: firestore.DocumentReference, data: firestore.WithFieldValue): Promise;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ delete(documentRef: firestore.DocumentReference, precondition?: firestore.Precondition): Promise;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ flush(): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ _getBufferedOperationsCount(): number;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ onWriteError(shouldRetryCallback: (error: BulkWriterError) => boolean): void;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ onWriteResult(successCallback: (documentRef: firestore.DocumentReference, result: WriteResult) => void): void;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "RateLimiter" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ readonly _rateLimiter: RateLimiter;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "BulkCommitBatch" needs to be exported by the entry point index.d.ts
+ // Warning: (ae-forgotten-export) The symbol "BulkWriterOperation" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ _sendFn(enqueueOnBatchCallback: (bulkCommitBatch: BulkCommitBatch) => void, op: BulkWriterOperation): void;
+ // (undocumented)
+ set(documentRef: firestore.DocumentReference, data: Partial, options: firestore.SetOptions): Promise;
+ // (undocumented)
+ set(documentRef: firestore.DocumentReference, data: AppModelType): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ _setMaxBatchSize(size: number): void;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ _setMaxPendingOpCount(newMax: number): void;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ update(documentRef: firestore.DocumentReference, dataOrField: firestore.UpdateData | string | FieldPath, ...preconditionOrValues: Array<{
+ lastUpdateTime?: Timestamp;
+ } | unknown | string | FieldPath>): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _verifyNotClosed(): void;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class BulkWriterError extends Error {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ constructor(
+ code: GrpcStatus,
+ message: string,
+ documentRef: firestore.DocumentReference,
+ operationType: 'create' | 'set' | 'update' | 'delete',
+ failedAttempts: number);
+ readonly code: GrpcStatus;
+ readonly documentRef: firestore.DocumentReference;
+ readonly failedAttempts: number;
+ readonly message: string;
+ readonly operationType: 'create' | 'set' | 'update' | 'delete';
+}
+
+// @public
+export class BundleBuilder {
+ constructor(bundleId: string);
+ // (undocumented)
+ add(documentSnapshot: DocumentSnapshot): BundleBuilder;
+ // (undocumented)
+ add(queryName: string, querySnapshot: QuerySnapshot): BundleBuilder;
+ // (undocumented)
+ build(): Buffer;
+ // (undocumented)
+ readonly bundleId: string;
+}
+
+// @beta
+function byteLength(expr: Expression): FunctionExpression;
+
+// @beta
+function byteLength(fieldName: string): FunctionExpression;
+
+// @beta
+function ceil(fieldName: string): FunctionExpression;
+
+// @beta
+function ceil(expression: Expression): FunctionExpression;
+
+// @beta
+function charLength(fieldName: string): FunctionExpression;
+
+// @beta
+function charLength(stringExpression: Expression): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class CollectionGroup extends Query implements firestore.CollectionGroup {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ constructor(firestore: Firestore, collectionId: string, converter: firestore.FirestoreDataConverter | undefined);
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ getPartitions(desiredPartitionCount: number): AsyncIterable>;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ withConverter(converter: firestore.FirestoreDataConverter | null): CollectionGroup;
+}
+
+// @beta
+function collectionId(fieldName: string): FunctionExpression;
+
+// @beta
+function collectionId(expression: Expression): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@extends" is not defined in this configuration
+//
+// @public
+export class CollectionReference extends Query implements firestore.CollectionReference {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "ResourcePath" needs to be exported by the entry point index.d.ts
+ constructor(firestore: Firestore, path: ResourcePath, converter?: firestore.FirestoreDataConverter);
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ add(data: firestore.WithFieldValue): Promise>;
+ // (undocumented)
+ doc(): DocumentReference;
+ // (undocumented)
+ doc(documentPath: string): DocumentReference;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get id(): string;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: firestore.CollectionReference): boolean;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ listDocuments(): Promise>>;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get parent(): DocumentReference | null;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get path(): string;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ get _resourcePath(): ResourcePath;
+ // (undocumented)
+ withConverter(converter: firestore.FirestoreDataConverter): CollectionReference;
+ // (undocumented)
+ withConverter(converter: null): CollectionReference;
+}
+
+// @beta
+function concat(first: Expression, second: Expression | unknown, ...others: Array): FunctionExpression;
+
+// @beta
+function concat(fieldName: string, second: Expression | unknown, ...others: Array): FunctionExpression;
+
+// @beta
+function conditional(condition: BooleanExpression, thenExpr: Expression, elseExpr: Expression): FunctionExpression;
+
+// @beta
+class Constant extends Expression {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@hideconstructor" is not defined in this configuration
+ constructor(value: unknown);
+ // (undocumented)
+ readonly expressionType: firestore.Pipelines.ExpressionType;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ static _fromProto(value: api.IValue): Constant;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _toProto(serializer: Serializer): api.IValue;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _validateUserData(ignoreUndefinedProperties: boolean): void;
+}
+
+// @beta
+function constant(value: number): Expression;
+
+// @beta
+function constant(value: string): Expression;
+
+// @beta
+function constant(value: boolean): BooleanExpression;
+
+// @beta
+function constant(value: null): Expression;
+
+// @beta
+function constant(value: firestore.GeoPoint): Expression;
+
+// @beta
+function constant(value: firestore.Timestamp): Expression;
+
+// @beta
+function constant(value: Date): Expression;
+
+// @beta
+function constant(value: Buffer | Uint8Array): Expression;
+
+// @beta
+function constant(value: firestore.DocumentReference): Expression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+//
+// @beta
+function constant(value: api.IValue): Expression;
+
+// @beta
+function constant(value: firestore.VectorValue): Expression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+//
+// @beta (undocumented)
+function constant(value: unknown): Expression;
+
+// @beta
+function cosineDistance(fieldName: string, vector: number[] | VectorValue): FunctionExpression;
+
+// @beta
+function cosineDistance(fieldName: string, vectorExpression: Expression): FunctionExpression;
+
+// @beta
+function cosineDistance(vectorExpression: Expression, vector: number[] | VectorValue): FunctionExpression;
+
+// @beta
+function cosineDistance(vectorExpression: Expression, otherVectorExpression: Expression): FunctionExpression;
+
+// @beta
+function count(expression: Expression): AggregateFunction;
+
+// @beta
+function count(fieldName: string): AggregateFunction;
+
+// @beta
+function countAll(): AggregateFunction;
+
+// @beta
+function countDistinct(expr: Expression | string): AggregateFunction;
+
+// @beta
+function countIf(booleanExpr: BooleanExpression): AggregateFunction;
+
+// @beta
+function currentTimestamp(): FunctionExpression;
+
+// @public (undocumented)
+export const DEFAULT_MAX_IDLE_CHANNELS = 1;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+//
+// @public
+export const DEFAULT_MAX_TRANSACTION_ATTEMPTS = 5;
+
+// @beta
+function descending(expr: Expression): Ordering;
+
+// @beta
+function descending(fieldName: string): Ordering;
+
+// @beta
+function divide(dividend: Expression, divisort: Expression): FunctionExpression;
+
+// @beta
+function divide(dividend: Expression, divisor: unknown): FunctionExpression;
+
+// @beta
+function divide(dividend: string, divisor: Expression): FunctionExpression;
+
+// @beta
+function divide(dividend: string, divisor: unknown): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class DocumentChange implements firestore.DocumentChange {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ constructor(type: DocumentChangeType, document: QueryDocumentSnapshot, oldIndex: number, newIndex: number);
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get doc(): QueryDocumentSnapshot;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ isEqual(other: firestore.DocumentChange): boolean;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get newIndex(): number;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get oldIndex(): number;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get type(): DocumentChangeType;
+}
+
+// @public (undocumented)
+export type DocumentChangeType = 'added' | 'removed' | 'modified';
+
+// @beta
+function documentId(documentPath: string | firestore.DocumentReference): FunctionExpression;
+
+// @beta
+function documentId(documentPathExpr: Expression): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+// Warning: (ae-forgotten-export) The symbol "Serializable" needs to be exported by the entry point index.d.ts
+//
+// @public
+export class DocumentReference implements Serializable, firestore.DocumentReference {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ constructor(_firestore: Firestore,
+ _path: ResourcePath,
+ _converter?: firestore.FirestoreDataConverter);
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ collection(collectionPath: string): CollectionReference;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ readonly _converter: firestore.FirestoreDataConverter;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ create(data: firestore.WithFieldValue): Promise;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ delete(precondition?: firestore.Precondition): Promise;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get firestore(): Firestore;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ //
+ // @internal
+ get formattedName(): string;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ get(): Promise>;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get id(): string;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: firestore.DocumentReference): boolean;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ listCollections(): Promise>;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ onSnapshot(onNext: (snapshot: firestore.DocumentSnapshot) => void, onError?: (error: Error) => void): () => void;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ get parent(): CollectionReference;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get path(): string;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ readonly _path: ResourcePath;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ get _resourcePath(): ResourcePath;
+ // (undocumented)
+ set(data: firestore.PartialWithFieldValue, options: firestore.SetOptions): Promise;
+ // (undocumented)
+ set(data: firestore.WithFieldValue): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ toProto(): api.IValue;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ update(dataOrField: firestore.UpdateData | string | firestore.FieldPath, ...preconditionOrValues: Array): Promise;
+ // (undocumented)
+ withConverter(converter: firestore.FirestoreDataConverter | null): DocumentReference;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class DocumentSnapshot implements firestore.DocumentSnapshot {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ constructor(ref: DocumentReference,
+ _fieldsProto?: ApiMapValue | undefined, readTime?: Timestamp, createTime?: Timestamp, updateTime?: Timestamp);
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get createTime(): Timestamp | undefined;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ data(): AppModelType | undefined;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get exists(): boolean;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "ApiMapValue" needs to be exported by the entry point index.d.ts
+ //
+ // @internal (undocumented)
+ readonly _fieldsProto?: ApiMapValue | undefined;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ static fromObject(ref: DocumentReference, obj: firestore.DocumentData): DocumentSnapshot;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "UpdateMap" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ static fromUpdateMap(ref: firestore.DocumentReference, data: UpdateMap): DocumentSnapshot;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ get(field: string | FieldPath): any;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get id(): string;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: firestore.DocumentSnapshot): boolean;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ protoField(field: string | FieldPath): api.IValue | undefined;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get readTime(): Timestamp;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get ref(): DocumentReference;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ toDocumentProto(): api.IDocument;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ toWriteProto(): api.IWrite;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get updateTime(): Timestamp | undefined;
+}
+
+// @beta
+function dotProduct(fieldName: string, vector: number[] | VectorValue): FunctionExpression;
+
+// @beta
+function dotProduct(fieldName: string, vectorExpression: Expression): FunctionExpression;
+
+// @beta
+function dotProduct(vectorExpression: Expression, vector: number[] | VectorValue): FunctionExpression;
+
+// @beta
+function dotProduct(vectorExpression: Expression, otherVectorExpression: Expression): FunctionExpression;
+
+// @beta
+function endsWith(fieldName: string, suffix: string): BooleanExpression;
+
+// @beta
+function endsWith(fieldName: string, suffix: Expression): BooleanExpression;
+
+// @beta
+function endsWith(stringExpression: Expression, suffix: string): BooleanExpression;
+
+// @beta
+function endsWith(stringExpression: Expression, suffix: Expression): BooleanExpression;
+
+// @beta
+function equal(left: Expression, right: Expression): BooleanExpression;
+
+// @beta
+function equal(expression: Expression, value: unknown): BooleanExpression;
+
+// @beta
+function equal(fieldName: string, expression: Expression): BooleanExpression;
+
+// @beta
+function equal(fieldName: string, value: unknown): BooleanExpression;
+
+// @beta
+function equalAny(expression: Expression, values: Array): BooleanExpression;
+
+// @beta
+function equalAny(expression: Expression, arrayExpression: Expression): BooleanExpression;
+
+// @beta
+function equalAny(fieldName: string, values: Array): BooleanExpression;
+
+// @beta
+function equalAny(fieldName: string, arrayExpression: Expression): BooleanExpression;
+
+// @beta
+function euclideanDistance(fieldName: string, vector: number[] | VectorValue): FunctionExpression;
+
+// @beta
+function euclideanDistance(fieldName: string, vectorExpression: Expression): FunctionExpression;
+
+// @beta
+function euclideanDistance(vectorExpression: Expression, vector: number[] | VectorValue): FunctionExpression;
+
+// @beta
+function euclideanDistance(vectorExpression: Expression, otherVectorExpression: Expression): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class ExecutionStats implements firestore.ExecutionStats {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ constructor(resultsReturned: number, executionDuration: firestore.Duration, readOperations: number, debugStats: Record);
+ // (undocumented)
+ readonly debugStats: Record;
+ // (undocumented)
+ readonly executionDuration: firestore.Duration;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ static _fromProto(stats: IExecutionStats | null | undefined, serializer: Serializer): ExecutionStats | null;
+ // (undocumented)
+ readonly readOperations: number;
+ // (undocumented)
+ readonly resultsReturned: number;
+}
+
+// @beta
+function exists(value: Expression): BooleanExpression;
+
+// @beta
+function exists(fieldName: string): BooleanExpression;
+
+// @beta
+function exp(expression: Expression): FunctionExpression;
+
+// @beta
+function exp(fieldName: string): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class ExplainMetrics implements firestore.ExplainMetrics {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ constructor(planSummary: PlanSummary, executionStats: ExecutionStats | null);
+ // (undocumented)
+ readonly executionStats: ExecutionStats | null;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ static _fromProto(metrics: IExplainMetrics, serializer: Serializer): ExplainMetrics;
+ // (undocumented)
+ readonly planSummary: PlanSummary;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class ExplainResults implements firestore.ExplainResults {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ constructor(metrics: ExplainMetrics, snapshot: T | null);
+ // (undocumented)
+ readonly metrics: ExplainMetrics;
+ // (undocumented)
+ readonly snapshot: T | null;
+}
+
+// @beta
+abstract class Expression implements firestore.Pipelines.Expression, HasUserData {
+ abs(): FunctionExpression;
+ add(second: firestore.Pipelines.Expression | unknown, ...others: Array): FunctionExpression;
+ arrayConcat(secondArray: Expression | unknown[], ...otherArrays: Array): FunctionExpression;
+ arrayContains(expression: Expression): BooleanExpression;
+ arrayContains(value: unknown): BooleanExpression;
+ arrayContainsAll(values: Array): BooleanExpression;
+ arrayContainsAll(arrayExpression: Expression): BooleanExpression;
+ arrayContainsAny(values: Array): BooleanExpression;
+ arrayContainsAny(arrayExpression: Expression): BooleanExpression;
+ arrayGet(index: number): FunctionExpression;
+ arrayGet(indexExpr: Expression): FunctionExpression;
+ arrayLength(): FunctionExpression;
+ arrayReverse(): FunctionExpression;
+ arraySum(): FunctionExpression;
+ as(name: string): AliasedExpression;
+ asBoolean(): BooleanExpression;
+ ascending(): Ordering;
+ average(): AggregateFunction;
+ byteLength(): FunctionExpression;
+ ceil(): FunctionExpression;
+ charLength(): FunctionExpression;
+ collectionId(): FunctionExpression;
+ concat(second: Expression | unknown, ...others: Array): FunctionExpression;
+ cosineDistance(vectorExpression: Expression): FunctionExpression;
+ cosineDistance(vector: firestore.VectorValue | number[]): FunctionExpression;
+ count(): AggregateFunction;
+ countDistinct(): AggregateFunction;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ _createdFromLiteral: boolean;
+ descending(): Ordering;
+ divide(divisor: Expression): FunctionExpression;
+ divide(divisor: number): FunctionExpression;
+ documentId(): FunctionExpression;
+ dotProduct(vectorExpression: Expression): FunctionExpression;
+ dotProduct(vector: firestore.VectorValue | number[]): FunctionExpression;
+ endsWith(suffix: string): BooleanExpression;
+ endsWith(suffix: Expression): BooleanExpression;
+ equal(expression: Expression): BooleanExpression;
+ equal(value: unknown): BooleanExpression;
+ equalAny(values: Array): BooleanExpression;
+ equalAny(arrayExpression: Expression): BooleanExpression;
+ euclideanDistance(vectorExpression: Expression): FunctionExpression;
+ euclideanDistance(vector: firestore.VectorValue | number[]): FunctionExpression;
+ exists(): BooleanExpression;
+ exp(): FunctionExpression;
+ // (undocumented)
+ abstract expressionType: firestore.Pipelines.ExpressionType;
+ floor(): FunctionExpression;
+ greaterThan(expression: Expression): BooleanExpression;
+ greaterThan(value: unknown): BooleanExpression;
+ greaterThanOrEqual(expression: Expression): BooleanExpression;
+ greaterThanOrEqual(value: unknown): BooleanExpression;
+ ifAbsent(elseValue: unknown): Expression;
+ ifAbsent(elseExpression: unknown): Expression;
+ ifError(catchExpr: Expression): FunctionExpression;
+ ifError(catchValue: unknown): FunctionExpression;
+ isAbsent(): BooleanExpression;
+ isError(): BooleanExpression;
+ isType(type: Type): BooleanExpression;
+ join(delimiterExpression: Expression): Expression;
+ join(delimiter: string): Expression;
+ length(): FunctionExpression;
+ lessThan(experession: Expression): BooleanExpression;
+ lessThan(value: unknown): BooleanExpression;
+ lessThanOrEqual(expression: Expression): BooleanExpression;
+ lessThanOrEqual(value: unknown): BooleanExpression;
+ like(pattern: string): BooleanExpression;
+ like(pattern: Expression): BooleanExpression;
+ ln(): FunctionExpression;
+ log10(): FunctionExpression;
+ logicalMaximum(second: Expression | unknown, ...others: Array): FunctionExpression;
+ logicalMinimum(second: Expression | unknown, ...others: Array): FunctionExpression;
+ mapEntries(): FunctionExpression;
+ mapGet(subfield: string): FunctionExpression;
+ mapKeys(): FunctionExpression;
+ mapMerge(secondMap: Record | Expression, ...otherMaps: Array | Expression>): FunctionExpression;
+ mapRemove(key: string): FunctionExpression;
+ mapRemove(keyExpr: Expression): FunctionExpression;
+ mapSet(key: string | Expression, value: unknown, ...moreKeyValues: unknown[]): FunctionExpression;
+ mapValues(): FunctionExpression;
+ maximum(): AggregateFunction;
+ minimum(): AggregateFunction;
+ mod(expression: Expression): FunctionExpression;
+ mod(value: number): FunctionExpression;
+ multiply(second: Expression | number, ...others: Array): FunctionExpression;
+ notEqual(expression: Expression): BooleanExpression;
+ notEqual(value: unknown): BooleanExpression;
+ notEqualAny(values: Array): BooleanExpression;
+ notEqualAny(arrayExpression: Expression): BooleanExpression;
+ pow(exponent: Expression): FunctionExpression;
+ pow(exponent: number): FunctionExpression;
+ // (undocumented)
+ _protoValueType: "ProtoValue";
+ regexContains(pattern: string): BooleanExpression;
+ regexContains(pattern: Expression): BooleanExpression;
+ regexFind(pattern: string): FunctionExpression;
+ regexFind(pattern: Expression): FunctionExpression;
+ regexFindAll(pattern: string): FunctionExpression;
+ regexFindAll(pattern: Expression): FunctionExpression;
+ regexMatch(pattern: string): BooleanExpression;
+ regexMatch(pattern: Expression): BooleanExpression;
+ reverse(): FunctionExpression;
+ round(): FunctionExpression;
+ round(decimalPlaces: number): FunctionExpression;
+ round(decimalPlaces: Expression): FunctionExpression;
+ split(delimiter: string): FunctionExpression;
+ split(delimiter: Expression): FunctionExpression;
+ sqrt(): FunctionExpression;
+ startsWith(prefix: string): BooleanExpression;
+ startsWith(prefix: Expression): BooleanExpression;
+ stringConcat(secondString: Expression | string, ...otherStrings: Array): FunctionExpression;
+ stringContains(substring: string): BooleanExpression;
+ stringContains(expr: Expression): BooleanExpression;
+ stringReverse(): FunctionExpression;
+ substring(position: number, length?: number): FunctionExpression;
+ substring(position: Expression, length?: Expression): FunctionExpression;
+ subtract(subtrahend: firestore.Pipelines.Expression): FunctionExpression;
+ subtract(subtrahend: number): FunctionExpression;
+ sum(): AggregateFunction;
+ timestampAdd(unit: Expression, amount: Expression): FunctionExpression;
+ timestampAdd(unit: 'microsecond' | 'millisecond' | 'second' | 'minute' | 'hour' | 'day', amount: number): FunctionExpression;
+ timestampSubtract(unit: Expression, amount: Expression): FunctionExpression;
+ timestampSubtract(unit: 'microsecond' | 'millisecond' | 'second' | 'minute' | 'hour' | 'day', amount: number): FunctionExpression;
+ timestampToUnixMicros(): FunctionExpression;
+ timestampToUnixMillis(): FunctionExpression;
+ timestampToUnixSeconds(): FunctionExpression;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ timestampTruncate(granularity: firestore.Pipelines.TimeGranularity, timezone?: string | Expression): FunctionExpression;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ timestampTruncate(granularity: Expression, timezone?: string | Expression): FunctionExpression;
+ toLower(): FunctionExpression;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ abstract _toProto(serializer: Serializer): api.IValue;
+ toUpper(): FunctionExpression;
+ trim(valueToTrim?: string | Expression | Uint8Array | Buffer): FunctionExpression;
+ trunc(): FunctionExpression;
+ trunc(decimalPlaces: number): FunctionExpression;
+ trunc(decimalPlaces: Expression): FunctionExpression;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ type(): FunctionExpression;
+ unixMicrosToTimestamp(): FunctionExpression;
+ unixMillisToTimestamp(): FunctionExpression;
+ unixSecondsToTimestamp(): FunctionExpression;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ abstract _validateUserData(ignoreUndefinedProperties: boolean): void;
+ vectorLength(): FunctionExpression;
+}
+
+// @beta
+class Field extends Expression implements firestore.Pipelines.Selectable {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@hideconstructor" is not defined in this configuration
+ constructor(fieldPath: FieldPath);
+ // (undocumented)
+ get _alias(): string;
+ // (undocumented)
+ get _expr(): Expression;
+ // (undocumented)
+ readonly expressionType: firestore.Pipelines.ExpressionType;
+ // (undocumented)
+ get fieldName(): string;
+ // (undocumented)
+ selectable: true;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _toProto(_: Serializer): api.IValue;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _validateUserData(_: boolean): void;
+}
+
+// @beta
+function field(field: string | firestore.FieldPath): Field;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+// Warning: (ae-forgotten-export) The symbol "Path" needs to be exported by the entry point index.d.ts
+//
+// @public
+export class FieldPath extends Path implements firestore.FieldPath {
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ constructor(...segments: string[]);
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal @override
+ construct(segments: string[]): FieldPath;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static documentId(): FieldPath;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ //
+ // @internal
+ static _emptyPath(): FieldPath;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ //
+ // @internal @override
+ get formattedName(): string;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ //
+ // @internal
+ static fromArgument(fieldPath: string | firestore.FieldPath): FieldPath;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: FieldPath): boolean;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ get _minNumSegments(): number;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ //
+ // @internal @override
+ split(fieldPath: string): string[];
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ toString(): string;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class FieldValue implements firestore.FieldValue {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ constructor();
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static arrayRemove(...elements: unknown[]): FieldValue;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static arrayUnion(...elements: unknown[]): FieldValue;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static delete(): FieldValue;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static increment(n: number): FieldValue;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: firestore.FieldValue): boolean;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static serverTimestamp(): FieldValue;
+ static vector(values?: number[]): VectorValue;
+}
+
+// @public
+export abstract class Filter {
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static and(...filters: Filter[]): Filter;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static or(...filters: Filter[]): Filter;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static where(fieldPath: string | firestore.FieldPath, opStr: firestore.WhereFilterOp, value: unknown): Filter;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+class Firestore implements firestore.Firestore {
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ constructor(settings?: firestore.Settings);
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ batch(): WriteBatch;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ bulkWriter(options?: firestore.BulkWriterOptions): BulkWriter;
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ bundle(name?: string): BundleBuilder;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ collection(collectionPath: string): CollectionReference;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ collectionGroup(collectionId: string): CollectionGroup;
+ get databaseId(): string;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _decrementBulkWritersCount(): void;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ doc(documentPath: string): DocumentReference;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ get formattedName(): string;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ getAll(...documentRefsOrReadOptions: Array | firestore.ReadOptions>): Promise>>;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _incrementBulkWritersCount(): void;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ initializeIfNeeded(requestTag: string): Promise;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ listCollections(): Promise;
+ // @beta
+ pipeline(): PipelineSource;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ get projectId(): string;
+ recursiveDelete(ref: firestore.CollectionReference | firestore.DocumentReference, bulkWriter?: BulkWriter): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _recursiveDelete(ref: firestore.CollectionReference | firestore.DocumentReference, maxPendingOps: number, minPendingOps: number, bulkWriter?: BulkWriter): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ registerListener(): void;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "FirestoreUnaryMethod" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ request(methodName: FirestoreUnaryMethod, request: Req, requestTag: string, retryCodes?: number[]): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "FirestoreStreamingMethod" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ requestStream(methodName: FirestoreStreamingMethod, bidrectional: boolean, request: {}, requestTag: string): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@template" is not defined in this configuration
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ runTransaction(updateFunction: (transaction: Transaction) => Promise, transactionOptions?: firestore.ReadWriteTransactionOptions | firestore.ReadOnlyTransactionOptions): Promise;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _serializer: Serializer | null;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ settings(settings: firestore.Settings): void;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _settings: firestore.Settings;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ snapshot_(documentName: string, readTime?: google.protobuf.ITimestamp, encoding?: 'protobufJS'): DocumentSnapshot;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ snapshot_(documentName: string, readTime: string, encoding: 'json'): DocumentSnapshot;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ snapshot_(document: api.IDocument, readTime: google.protobuf.ITimestamp, encoding?: 'protobufJS'): QueryDocumentSnapshot;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ snapshot_(document: {
+ [k: string]: unknown;
+ }, readTime: string, encoding: 'json'): QueryDocumentSnapshot;
+ terminate(): Promise;
+ toJSON(): object;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "TraceUtil" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ _traceUtil: TraceUtil;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ unregisterListener(): void;
+}
+export { Firestore }
+export default Firestore;
+
+// @beta
+function floor(expr: Expression): FunctionExpression;
+
+// @beta
+function floor(fieldName: string): FunctionExpression;
+
+// @beta
+class FunctionExpression extends Expression {
+ constructor(_methodName: string, params: Expression[]);
+ // (undocumented)
+ readonly expressionType: firestore.Pipelines.ExpressionType;
+ // (undocumented)
+ _methodName: string;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _toProto(serializer: Serializer): api.IValue;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _validateUserData(ignoreUndefinedProperties: boolean): void;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class GeoPoint implements Serializable, firestore.GeoPoint {
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ constructor(latitude: number, longitude: number);
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ static fromProto(proto: google.type.ILatLng): GeoPoint;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: firestore.GeoPoint): boolean;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get latitude(): number;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get longitude(): number;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ toProto(): api.IValue;
+}
+
+// @beta
+function greaterThan(left: Expression, right: Expression): BooleanExpression;
+
+// @beta
+function greaterThan(expression: Expression, value: unknown): BooleanExpression;
+
+// @beta
+function greaterThan(fieldName: string, expression: Expression): BooleanExpression;
+
+// @beta
+function greaterThan(fieldName: string, value: unknown): BooleanExpression;
+
+// @beta
+function greaterThanOrEqual(left: Expression, right: Expression): BooleanExpression;
+
+// @beta
+function greaterThanOrEqual(expression: Expression, value: unknown): BooleanExpression;
+
+// @beta
+function greaterThanOrEqual(fieldName: string, value: Expression): BooleanExpression;
+
+// @beta
+function greaterThanOrEqual(fieldName: string, value: unknown): BooleanExpression;
+
+// @beta
+function ifAbsent(ifExpr: Expression, elseExpr: Expression): Expression;
+
+// @beta
+function ifAbsent(ifExpr: Expression, elseValue: unknown): Expression;
+
+// @beta
+function ifAbsent(ifFieldName: string, elseExpr: Expression): Expression;
+
+// @beta
+function ifAbsent(ifFieldName: string | Expression, elseValue: Expression | unknown): Expression;
+
+// @beta
+function ifError(tryExpr: BooleanExpression, catchExpr: BooleanExpression): BooleanExpression;
+
+// @beta
+function ifError(tryExpr: Expression, catchExpr: Expression): FunctionExpression;
+
+// @beta
+function ifError(tryExpr: Expression, catchValue: unknown): FunctionExpression;
+
+// @beta
+function isAbsent(value: Expression): BooleanExpression;
+
+// @beta
+function isAbsent(field: string): BooleanExpression;
+
+// @beta
+function isError(value: Expression): BooleanExpression;
+
+// @beta
+function isType(fieldName: string, type: Type): BooleanExpression;
+
+// @beta
+function isType(expression: Expression, type: Type): BooleanExpression;
+
+// @beta
+function join(arrayFieldName: string, delimiter: string): Expression;
+
+// @beta
+function join(arrayExpression: Expression, delimiterExpression: Expression): Expression;
+
+// @beta
+function join(arrayExpression: Expression, delimiter: string): Expression;
+
+// @beta
+function join(arrayFieldName: string, delimiterExpression: Expression): Expression;
+
+// @beta
+function length_2(fieldName: string): FunctionExpression;
+
+// @beta
+function length_2(expression: Expression): FunctionExpression;
+
+// @beta
+function lessThan(left: Expression, right: Expression): BooleanExpression;
+
+// @beta
+function lessThan(expression: Expression, value: unknown): BooleanExpression;
+
+// @beta
+function lessThan(fieldName: string, expression: Expression): BooleanExpression;
+
+// @beta
+function lessThan(fieldName: string, value: unknown): BooleanExpression;
+
+// @beta
+function lessThanOrEqual(left: Expression, right: Expression): BooleanExpression;
+
+// @beta
+function lessThanOrEqual(expression: Expression, value: unknown): BooleanExpression;
+
+// @beta
+function lessThanOrEqual(fieldName: string, expression: Expression): BooleanExpression;
+
+// @beta
+function lessThanOrEqual(fieldName: string, value: unknown): BooleanExpression;
+
+// @beta
+function like(fieldName: string, pattern: string): BooleanExpression;
+
+// @beta
+function like(fieldName: string, pattern: Expression): BooleanExpression;
+
+// @beta
+function like(stringExpression: Expression, pattern: string): BooleanExpression;
+
+// @beta
+function like(stringExpression: Expression, pattern: Expression): BooleanExpression;
+
+// @beta
+function ln(fieldName: string): FunctionExpression;
+
+// @beta
+function ln(expression: Expression): FunctionExpression;
+
+// @beta
+function log10(fieldName: string): FunctionExpression;
+
+// @beta
+function log10(expression: Expression): FunctionExpression;
+
+// @beta
+function logicalMaximum(first: Expression, second: Expression | unknown, ...others: Array): FunctionExpression;
+
+// @beta
+function logicalMaximum(fieldName: string, second: Expression | unknown, ...others: Array): FunctionExpression;
+
+// @beta
+function logicalMinimum(first: Expression, second: Expression | unknown, ...others: Array): FunctionExpression;
+
+// @beta
+function logicalMinimum(fieldName: string, second: Expression | unknown, ...others: Array): FunctionExpression;
+
+// @beta
+function map(elements: Record): FunctionExpression;
+
+// @beta
+function mapEntries(mapField: string): FunctionExpression;
+
+// @beta
+function mapEntries(mapExpression: Expression): FunctionExpression;
+
+// @beta
+function mapGet(fieldName: string, subField: string): FunctionExpression;
+
+// @beta
+function mapGet(mapExpression: Expression, subField: string): FunctionExpression;
+
+// @beta
+function mapKeys(mapField: string): FunctionExpression;
+
+// @beta
+function mapKeys(mapExpression: Expression): FunctionExpression;
+
+// @beta
+function mapMerge(mapField: string, secondMap: Record | Expression, ...otherMaps: Array | Expression>): FunctionExpression;
+
+// @beta
+function mapMerge(firstMap: Record | Expression, secondMap: Record | Expression, ...otherMaps: Array | Expression>): FunctionExpression;
+
+// @beta
+function mapRemove(mapField: string, key: string): FunctionExpression;
+
+// @beta
+function mapRemove(mapExpr: Expression, key: string): FunctionExpression;
+
+// @beta
+function mapRemove(mapField: string, keyExpr: Expression): FunctionExpression;
+
+// @beta
+function mapRemove(mapExpr: Expression, keyExpr: Expression): FunctionExpression;
+
+// @beta
+function mapSet(mapField: string, key: string | Expression, value: unknown, ...moreKeyValues: unknown[]): FunctionExpression;
+
+// @beta
+function mapSet(mapExpression: Expression, key: string | Expression, value: unknown, ...moreKeyValues: unknown[]): FunctionExpression;
+
+// @beta
+function mapValues(mapField: string): FunctionExpression;
+
+// @beta
+function mapValues(mapExpression: Expression): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+//
+// @public
+export const MAX_REQUEST_RETRIES = 5;
+
+// @beta
+function maximum(expression: Expression): AggregateFunction;
+
+// @beta
+function maximum(fieldName: string): AggregateFunction;
+
+// @beta
+function minimum(expression: Expression): AggregateFunction;
+
+// @beta
+function minimum(fieldName: string): AggregateFunction;
+
+// @beta
+function mod(left: Expression, right: Expression): FunctionExpression;
+
+// @beta
+function mod(expression: Expression, value: unknown): FunctionExpression;
+
+// @beta
+function mod(fieldName: string, expression: Expression): FunctionExpression;
+
+// @beta
+function mod(fieldName: string, value: unknown): FunctionExpression;
+
+// @beta
+function multiply(first: Expression, second: Expression | unknown): FunctionExpression;
+
+// @beta
+function multiply(fieldName: string, second: Expression | unknown): FunctionExpression;
+
+// @beta
+function not(booleanExpr: BooleanExpression): BooleanExpression;
+
+// @beta
+function notEqual(left: Expression, right: Expression): BooleanExpression;
+
+// @beta
+function notEqual(expression: Expression, value: unknown): BooleanExpression;
+
+// @beta
+function notEqual(fieldName: string, expression: Expression): BooleanExpression;
+
+// @beta
+function notEqual(fieldName: string, value: unknown): BooleanExpression;
+
+// @beta
+function notEqualAny(element: Expression, values: Array): BooleanExpression;
+
+// @beta
+function notEqualAny(fieldName: string, values: Array): BooleanExpression;
+
+// @beta
+function notEqualAny(element: Expression, arrayExpression: Expression): BooleanExpression;
+
+// @beta
+function notEqualAny(fieldName: string, arrayExpression: Expression): BooleanExpression;
+
+// @beta
+function or(first: BooleanExpression, second: BooleanExpression, ...more: BooleanExpression[]): BooleanExpression;
+
+// @beta
+class Ordering implements HasUserData {
+ constructor(expr: Expression, direction: 'ascending' | 'descending');
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ _createdFromLiteral: boolean;
+ // (undocumented)
+ readonly direction: 'ascending' | 'descending';
+ // (undocumented)
+ readonly expr: Expression;
+ // (undocumented)
+ _protoValueType: 'ProtoValue';
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _toProto(serializer: Serializer): api.IValue;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ _validateUserData(ignoreUndefinedProperties: boolean): void;
+}
+
+// @beta
+class Pipeline implements firestore.Pipelines.Pipeline {
+ // Warning: (ae-forgotten-export) The symbol "Stage" needs to be exported by the entry point index.d.ts
+ constructor(db: Firestore, stages: Stage[]);
+ addFields(field: firestore.Pipelines.Selectable, ...additionalFields: firestore.Pipelines.Selectable[]): Pipeline;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ addFields(options: firestore.Pipelines.AddFieldsStageOptions): Pipeline;
+ aggregate(accumulator: firestore.Pipelines.AliasedAggregate, ...additionalAccumulators: firestore.Pipelines.AliasedAggregate[]): Pipeline;
+ aggregate(options: firestore.Pipelines.AggregateStageOptions): Pipeline;
+ distinct(group: string | firestore.Pipelines.Selectable, ...additionalGroups: Array): Pipeline;
+ distinct(options: firestore.Pipelines.DistinctStageOptions): Pipeline;
+ execute(pipelineExecuteOptions?: firestore.Pipelines.PipelineExecuteOptions): Promise;
+ // Warning: (ae-forgotten-export) The symbol "PipelineResponse" needs to be exported by the entry point index.d.ts
+ //
+ // (undocumented)
+ _execute(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions, pipelineExecuteOptions?: firestore.Pipelines.PipelineExecuteOptions): Promise;
+ findNearest(options: firestore.Pipelines.FindNearestStageOptions): Pipeline;
+ limit(limit: number): Pipeline;
+ limit(options: firestore.Pipelines.LimitStageOptions): Pipeline;
+ offset(offset: number): Pipeline;
+ offset(options: firestore.Pipelines.OffsetStageOptions): Pipeline;
+ rawStage(name: string, params: unknown[], options?: {
+ [key: string]: Expression | unknown;
+ }): Pipeline;
+ removeFields(fieldValue: firestore.Pipelines.Field | string, ...additionalFields: Array): Pipeline;
+ removeFields(options: firestore.Pipelines.RemoveFieldsStageOptions): Pipeline;
+ replaceWith(fieldName: string): Pipeline;
+ replaceWith(expr: firestore.Pipelines.Expression): Pipeline;
+ replaceWith(options: firestore.Pipelines.ReplaceWithStageOptions): Pipeline;
+ sample(documents: number): Pipeline;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ sample(options: firestore.Pipelines.SampleStageOptions): Pipeline;
+ select(selection: firestore.Pipelines.Selectable | string, ...additionalSelections: Array): Pipeline;
+ select(options: firestore.Pipelines.SelectStageOptions): Pipeline;
+ sort(ordering: firestore.Pipelines.Ordering, ...additionalOrderings: firestore.Pipelines.Ordering[]): Pipeline;
+ sort(options: firestore.Pipelines.SortStageOptions): Pipeline;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ stream(): NodeJS.ReadableStream;
+ // (undocumented)
+ _toProto(): api.IPipeline;
+ // Warning: (ae-forgotten-export) The symbol "StructuredPipeline" needs to be exported by the entry point index.d.ts
+ //
+ // (undocumented)
+ _toStructuredPipeline(pipelineExecuteOptions?: firestore.Pipelines.PipelineExecuteOptions): StructuredPipeline;
+ union(other: firestore.Pipelines.Pipeline): Pipeline;
+ union(options: firestore.Pipelines.UnionStageOptions): Pipeline;
+ unnest(selectable: firestore.Pipelines.Selectable, indexField?: string): Pipeline;
+ unnest(options: firestore.Pipelines.UnnestStageOptions): Pipeline;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ _validateUserData | HasUserData[] | HasUserData>(_: string, val: T): T;
+ where(condition: firestore.Pipelines.BooleanExpression): Pipeline;
+ where(options: firestore.Pipelines.WhereStageOptions): Pipeline;
+}
+
+// @beta
+class PipelineResult implements firestore.Pipelines.PipelineResult {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ constructor(serializer: Serializer,
+ _fieldsProto: ApiMapValue, ref?: DocumentReference, readTime?: Timestamp, createTime?: Timestamp, updateTime?: Timestamp);
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ get createTime(): Timestamp | undefined;
+ // (undocumented)
+ readonly _createTime: Timestamp | undefined;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ data(): firestore.DocumentData;
+ // (undocumented)
+ readonly _executionTime: Timestamp | undefined;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // (undocumented)
+ readonly _fieldsProto: ApiMapValue;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ get(fieldPath: string | FieldPath): any;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ get id(): string | undefined;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: PipelineResult): boolean;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ protoField(field: string | FieldPath): api.IValue | undefined;
+ get ref(): DocumentReference | undefined;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ get updateTime(): Timestamp | undefined;
+ // (undocumented)
+ readonly _updateTime: Timestamp | undefined;
+}
+
+declare namespace Pipelines {
+ export {
+ Pipeline,
+ PipelineResult,
+ PipelineSnapshot,
+ PipelineSource,
+ and,
+ arrayContains,
+ arrayContainsAny,
+ arrayReverse,
+ average,
+ equal,
+ ceil,
+ exp,
+ floor,
+ greaterThan,
+ like,
+ lessThan,
+ notEqual,
+ ascending,
+ not,
+ or,
+ regexContains,
+ regexMatch,
+ regexFind,
+ regexFindAll,
+ startsWith,
+ stringConcat,
+ subtract,
+ cosineDistance,
+ countDistinct,
+ dotProduct,
+ euclideanDistance,
+ mapGet,
+ mapEntries,
+ mapKeys,
+ mapSet,
+ mapValues,
+ lessThanOrEqual,
+ equalAny,
+ map,
+ array,
+ field,
+ xor,
+ AggregateFunction,
+ arrayGet,
+ add,
+ BooleanExpression,
+ Expression,
+ FunctionExpression,
+ minimum,
+ count,
+ countIf,
+ arrayLength,
+ stringContains,
+ charLength,
+ divide,
+ mod,
+ reverse,
+ trim,
+ toUpper,
+ toLower,
+ vectorLength,
+ exists,
+ isAbsent,
+ ifError,
+ isError,
+ substring,
+ documentId,
+ arrayContainsAll,
+ constant,
+ Field,
+ Constant,
+ sum,
+ maximum,
+ descending,
+ greaterThanOrEqual,
+ multiply,
+ conditional,
+ Ordering,
+ AliasedAggregate,
+ endsWith,
+ AliasedExpression,
+ mapMerge,
+ mapRemove,
+ byteLength,
+ logicalMaximum,
+ logicalMinimum,
+ notEqualAny,
+ countAll,
+ timestampAdd,
+ timestampSubtract,
+ timestampToUnixMicros,
+ timestampToUnixSeconds,
+ unixMicrosToTimestamp,
+ timestampToUnixMillis,
+ unixSecondsToTimestamp,
+ unixMillisToTimestamp,
+ pow,
+ collectionId,
+ length_2 as length,
+ ln,
+ round,
+ sqrt,
+ rand,
+ trunc,
+ stringReverse,
+ abs,
+ arraySum,
+ ifAbsent,
+ log10,
+ concat,
+ join,
+ currentTimestamp,
+ arrayConcat,
+ type,
+ isType,
+ Type,
+ timestampTruncate,
+ split
+ }
+}
+export { Pipelines }
+
+// @beta
+class PipelineSnapshot implements firestore.Pipelines.PipelineSnapshot {
+ // Warning: (ae-forgotten-export) The symbol "ExplainStats" needs to be exported by the entry point index.d.ts
+ constructor(pipeline: Pipeline, results: PipelineResult[], executionTime?: Timestamp, explainStats?: ExplainStats);
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ get executionTime(): Timestamp;
+ get explainStats(): ExplainStats | undefined;
+ get pipeline(): Pipeline;
+ get results(): PipelineResult[];
+}
+
+// @beta
+class PipelineSource implements firestore.Pipelines.PipelineSource {
+ constructor(db: Firestore);
+ collection(collection: string | firestore.CollectionReference): Pipeline;
+ collection(options: firestore.Pipelines.CollectionStageOptions): Pipeline;
+ collectionGroup(collectionId: string): Pipeline;
+ collectionGroup(options: firestore.Pipelines.CollectionGroupStageOptions): Pipeline;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@FirestoreError" is not defined in this configuration
+ createFrom(query: firestore.VectorQuery): Pipeline;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@FirestoreError" is not defined in this configuration
+ createFrom(query: firestore.Query): Pipeline;
+ database(): Pipeline;
+ database(options: firestore.Pipelines.DatabaseStageOptions): Pipeline;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@FirestoreError" is not defined in this configuration
+ documents(docs: Array): Pipeline;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@FirestoreError" is not defined in this configuration
+ documents(options: firestore.Pipelines.DocumentsStageOptions): Pipeline;
+ // (undocumented)
+ _validateReference(reference: firestore.CollectionReference | firestore.DocumentReference): reference is CollectionReference | DocumentReference;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class PlanSummary implements firestore.PlanSummary {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ constructor(indexesUsed: Record[]);
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ static _fromProto(plan: IPlanSummary | null | undefined, serializer: Serializer): PlanSummary;
+ // (undocumented)
+ readonly indexesUsed: Record[];
+}
+
+// @beta
+function pow(base: Expression, exponent: Expression): FunctionExpression;
+
+// @beta
+function pow(base: Expression, exponent: number): FunctionExpression;
+
+// @beta
+function pow(base: string, exponent: Expression): FunctionExpression;
+
+// @beta
+function pow(base: string, exponent: number): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class Query implements firestore.Query {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ constructor(
+ _firestore: Firestore,
+ _queryOptions: QueryOptions);
+ aggregate(aggregateSpec: T): AggregateQuery;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ protected readonly _allowUndefined: boolean;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ comparator(): (s1: QueryDocumentSnapshot, s2: QueryDocumentSnapshot) => number;
+ count(): AggregateQuery<{
+ count: firestore.AggregateField;
+ }, AppModelType, DbModelType>;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _createSnapshot(readTime: Timestamp, size: number, docs: () => Array>, changes: () => Array>): QuerySnapshot;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ endAt(...fieldValuesOrDocumentSnapshot: Array): Query;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ endBefore(...fieldValuesOrDocumentSnapshot: Array): Query;
+ explain(options?: firestore.ExplainOptions): Promise>>;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ explainStream(explainOptions?: firestore.ExplainOptions): NodeJS.ReadableStream;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (ae-forgotten-export) The symbol "FieldOrder" needs to be exported by the entry point index.d.ts
+ //
+ // @internal
+ static _extractFieldValues(documentSnapshot: DocumentSnapshot, fieldOrders: FieldOrder[]): unknown[];
+ // @deprecated
+ findNearest(vectorField: string | firestore.FieldPath, queryVector: firestore.VectorValue | Array, options: {
+ limit: number;
+ distanceMeasure: 'EUCLIDEAN' | 'COSINE' | 'DOT_PRODUCT';
+ }): VectorQuery;
+ findNearest(options: VectorQueryOptions): VectorQuery;
+ // (undocumented)
+ _findNearest(options: VectorQueryOptions): VectorQuery;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get firestore(): Firestore;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ readonly _firestore: Firestore;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ get(): Promise>;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _get(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions): Promise>>;
+ // (undocumented)
+ _getResponse(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions, explainOptions?: firestore.ExplainOptions): Promise>>;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _hasRetryTimedOut(methodName: string, startTime: number): boolean;
+ _isCollectionGroupQuery(): boolean;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: firestore.Query): boolean;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _isPermanentRpcError(err: GoogleError, methodName: string): boolean;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ limit(limit: number): Query;
+ limitToLast(limit: number): Query;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ offset(offset: number): Query;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ onSnapshot(onNext: (snapshot: QuerySnapshot) => void, onError?: (error: Error) => void): () => void;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ orderBy(fieldPath: string | firestore.FieldPath, directionStr?: firestore.OrderByDirection): Query;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "CompositeFilter" needs to be exported by the entry point index.d.ts
+ //
+ // @internal (undocumented)
+ _parseCompositeFilter(compositeFilterData: CompositeFilter): FilterInternal;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "UnaryFilter" needs to be exported by the entry point index.d.ts
+ // Warning: (ae-forgotten-export) The symbol "FieldFilterInternal" needs to be exported by the entry point index.d.ts
+ //
+ // @internal (undocumented)
+ _parseFieldFilter(fieldFilterData: UnaryFilter): FieldFilterInternal;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "FilterInternal" needs to be exported by the entry point index.d.ts
+ //
+ // @internal (undocumented)
+ _parseFilter(filter: Filter): FilterInternal;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ _pipeline(): Pipeline;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "QueryOptions" needs to be exported by the entry point index.d.ts
+ //
+ // @internal (undocumented)
+ readonly _queryOptions: QueryOptions;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (ae-forgotten-export) The symbol "QueryUtil" needs to be exported by the entry point index.d.ts
+ //
+ // @internal (undocumented)
+ readonly _queryUtil: QueryUtil>;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ select(...fieldPaths: Array): Query;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal (undocumented)
+ readonly _serializer: Serializer;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ startAfter(...fieldValuesOrDocumentSnapshot: Array): Query;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ startAt(...fieldValuesOrDocumentSnapshot: Array): Query;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ stream(): NodeJS.ReadableStream;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _stream(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions, explainOptions?: firestore.ExplainOptions): NodeJS.ReadableStream;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ _toBundledQuery(): protos.firestore.IBundledQuery;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ toProto(transactionOrReadTime?: Uint8Array | Timestamp | api.ITransactionOptions, explainOptions?: firestore.ExplainOptions): api.IRunQueryRequest;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ where(fieldPath: string | FieldPath, opStr: firestore.WhereFilterOp, value: unknown): Query;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ where(filter: Filter): Query;
+ // (undocumented)
+ withConverter(converter: firestore.FirestoreDataConverter | null): Query;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@extends" is not defined in this configuration
+//
+// @public
+export class QueryDocumentSnapshot extends DocumentSnapshot implements firestore.QueryDocumentSnapshot {
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ //
+ // @override
+ get createTime(): Timestamp;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ //
+ // @override
+ data(): AppModelType;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ //
+ // @override
+ get updateTime(): Timestamp;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class QueryPartition implements firestore.QueryPartition {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ constructor(_firestore: Firestore, _collectionId: string, _converter: firestore.FirestoreDataConverter, _startAt: api.IValue[] | undefined, _endBefore: api.IValue[] | undefined);
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ get endBefore(): unknown[] | undefined;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ get startAt(): unknown[] | undefined;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ toQuery(): Query;
+}
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class QuerySnapshot implements firestore.QuerySnapshot {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ constructor(_query: Query, _readTime: Timestamp, _size: number, docs: () => Array>, changes: () => Array>);
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ docChanges(): Array>;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get docs(): Array>;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get empty(): boolean;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ forEach(callback: (result: firestore.QueryDocumentSnapshot) => void, thisArg?: unknown): void;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: firestore.QuerySnapshot): boolean;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get query(): Query;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get readTime(): Timestamp;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@name" is not defined in this configuration
+ get size(): number;
+}
+
+// @beta
+function rand(): FunctionExpression;
+
+// @beta
+function regexContains(fieldName: string, pattern: string): BooleanExpression;
+
+// @beta
+function regexContains(fieldName: string, pattern: Expression): BooleanExpression;
+
+// @beta
+function regexContains(stringExpression: Expression, pattern: string): BooleanExpression;
+
+// @beta
+function regexContains(stringExpression: Expression, pattern: Expression): BooleanExpression;
+
+// @beta
+function regexFind(fieldName: string, pattern: string): FunctionExpression;
+
+// @beta
+function regexFind(fieldName: string, pattern: Expression): FunctionExpression;
+
+// @beta
+function regexFind(stringExpression: Expression, pattern: string): FunctionExpression;
+
+// @beta
+function regexFind(stringExpression: Expression, pattern: Expression): FunctionExpression;
+
+// @beta
+function regexFindAll(fieldName: string, pattern: string): FunctionExpression;
+
+// @beta
+function regexFindAll(fieldName: string, pattern: Expression): FunctionExpression;
+
+// @beta
+function regexFindAll(stringExpression: Expression, pattern: string): FunctionExpression;
+
+// @beta
+function regexFindAll(stringExpression: Expression, pattern: Expression): FunctionExpression;
+
+// @beta
+function regexMatch(fieldName: string, pattern: string): BooleanExpression;
+
+// @beta
+function regexMatch(fieldName: string, pattern: Expression): BooleanExpression;
+
+// @beta
+function regexMatch(stringExpression: Expression, pattern: string): BooleanExpression;
+
+// @beta
+function regexMatch(stringExpression: Expression, pattern: Expression): BooleanExpression;
+
+// @beta
+function reverse(stringExpression: Expression): FunctionExpression;
+
+// @beta
+function reverse(field: string): FunctionExpression;
+
+// @beta
+function round(fieldName: string): FunctionExpression;
+
+// @beta
+function round(expression: Expression): FunctionExpression;
+
+// @beta
+function round(fieldName: string, decimalPlaces: number | Expression): FunctionExpression;
+
+// @beta
+function round(expression: Expression, decimalPlaces: number | Expression): FunctionExpression;
+
+// @public
+export function setLogFunction(logger: ((msg: string) => void) | null): void;
+
+// @beta
+function split(fieldName: string, delimiter: string): FunctionExpression;
+
+// @beta
+function split(fieldName: string, delimiter: Expression): FunctionExpression;
+
+// @beta
+function split(expression: Expression, delimiter: string): FunctionExpression;
+
+// @beta
+function split(expression: Expression, delimiter: Expression): FunctionExpression;
+
+// @beta
+function sqrt(expression: Expression): FunctionExpression;
+
+// @beta
+function sqrt(fieldName: string): FunctionExpression;
+
+// @beta
+function startsWith(fieldName: string, prefix: string): BooleanExpression;
+
+// @beta
+function startsWith(fieldName: string, prefix: Expression): BooleanExpression;
+
+// @beta
+function startsWith(stringExpression: Expression, prefix: string): BooleanExpression;
+
+// @beta
+function startsWith(stringExpression: Expression, prefix: Expression): BooleanExpression;
+
+// @beta
+function stringConcat(fieldName: string, secondString: Expression | string, ...otherStrings: Array): FunctionExpression;
+
+// @beta
+function stringConcat(firstString: Expression, secondString: Expression | string, ...otherStrings: Array): FunctionExpression;
+
+// @beta
+function stringContains(fieldName: string, substring: string): BooleanExpression;
+
+// @beta
+function stringContains(fieldName: string, substring: Expression): BooleanExpression;
+
+// @beta
+function stringContains(stringExpression: Expression, substring: string): BooleanExpression;
+
+// @beta
+function stringContains(stringExpression: Expression, substring: Expression): BooleanExpression;
+
+// @beta
+function stringReverse(stringExpression: Expression): FunctionExpression;
+
+// @beta
+function stringReverse(field: string): FunctionExpression;
+
+// @beta
+function substring(field: string, position: number, length?: number): FunctionExpression;
+
+// @beta
+function substring(input: Expression, position: number, length?: number): FunctionExpression;
+
+// @beta
+function substring(field: string, position: Expression, length?: Expression): FunctionExpression;
+
+// @beta
+function substring(input: Expression, position: Expression, length?: Expression): FunctionExpression;
+
+// @beta
+function subtract(minuend: Expression, subtrahend: Expression): FunctionExpression;
+
+// @beta
+function subtract(minuend: Expression, subtrahend: unknown): FunctionExpression;
+
+// @beta
+function subtract(minuendFieldName: string, subtrahend: Expression): FunctionExpression;
+
+// @beta
+function subtract(minuendFieldName: string, subtrahend: unknown): FunctionExpression;
+
+// @beta
+function sum(expression: Expression): AggregateFunction;
+
+// @beta
+function sum(fieldName: string): AggregateFunction;
+
+// @public
+export class Timestamp implements firestore.Timestamp {
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ constructor(seconds: number, nanoseconds: number);
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static fromDate(date: Date): Timestamp;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static fromMillis(milliseconds: number): Timestamp;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ //
+ // @internal
+ static fromProto(timestamp: google.protobuf.ITimestamp): Timestamp;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ isEqual(other: firestore.Timestamp): boolean;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ get nanoseconds(): number;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ static now(): Timestamp;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
+ get seconds(): number;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ toDate(): Date;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ toMillis(): number;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ //
+ // @internal
+ toProto(): api.IValue;
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ valueOf(): string;
+}
+
+// @beta
+function timestampAdd(timestamp: Expression, unit: Expression, amount: Expression): FunctionExpression;
+
+// @beta
+function timestampAdd(timestamp: Expression, unit: 'microsecond' | 'millisecond' | 'second' | 'minute' | 'hour' | 'day', amount: number): FunctionExpression;
+
+// @beta
+function timestampAdd(fieldName: string, unit: 'microsecond' | 'millisecond' | 'second' | 'minute' | 'hour' | 'day', amount: number): FunctionExpression;
+
+// @beta
+function timestampSubtract(timestamp: Expression, unit: Expression, amount: Expression): FunctionExpression;
+
+// @beta
+function timestampSubtract(timestamp: Expression, unit: 'microsecond' | 'millisecond' | 'second' | 'minute' | 'hour' | 'day', amount: number): FunctionExpression;
+
+// @beta
+function timestampSubtract(fieldName: string, unit: 'microsecond' | 'millisecond' | 'second' | 'minute' | 'hour' | 'day', amount: number): FunctionExpression;
+
+// @beta
+function timestampToUnixMicros(expr: Expression): FunctionExpression;
+
+// @beta
+function timestampToUnixMicros(fieldName: string): FunctionExpression;
+
+// @beta
+function timestampToUnixMillis(expr: Expression): FunctionExpression;
+
+// @beta
+function timestampToUnixMillis(fieldName: string): FunctionExpression;
+
+// @beta
+function timestampToUnixSeconds(expr: Expression): FunctionExpression;
+
+// @beta
+function timestampToUnixSeconds(fieldName: string): FunctionExpression;
+
+// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "Expression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "FunctionExpression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "Expression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "FunctionExpression" which is marked as @beta
+//
+// @public
+function timestampTruncate(fieldName: string, granularity: firestore.Pipelines.TimeGranularity, timezone?: string | Expression): FunctionExpression;
+
+// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "Expression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "FunctionExpression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "Expression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "FunctionExpression" which is marked as @beta
+//
+// @public
+function timestampTruncate(fieldName: string, granularity: Expression, timezone?: string | Expression): FunctionExpression;
+
+// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "Expression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "FunctionExpression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "Expression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "FunctionExpression" which is marked as @beta
+//
+// @public
+function timestampTruncate(timestampExpression: Expression, granularity: firestore.Pipelines.TimeGranularity, timezone?: string | Expression): FunctionExpression;
+
+// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "Expression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "FunctionExpression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "Expression" which is marked as @beta
+// Warning: (ae-incompatible-release-tags) The symbol "timestampTruncate" is marked as @public, but its signature references "FunctionExpression" which is marked as @beta
+//
+// @public
+function timestampTruncate(timestampExpression: Expression, granularity: Expression, timezone?: string | Expression): FunctionExpression;
+
+// @beta
+function toLower(fieldName: string): FunctionExpression;
+
+// @beta
+function toLower(stringExpression: Expression): FunctionExpression;
+
+// @beta
+function toUpper(fieldName: string): FunctionExpression;
+
+// @beta
+function toUpper(stringExpression: Expression): FunctionExpression;
+
+// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration
+//
+// @public
+export class Transaction implements firestore.Transaction {
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ constructor(firestore: Firestore, requestTag: string, transactionOptions?: firestore.ReadWriteTransactionOptions | firestore.ReadOnlyTransactionOptions);
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ commit(): Promise;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ create(documentRef: firestore.DocumentReference, data: firestore.WithFieldValue): Transaction;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ // Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ delete(documentRef: DocumentReference, precondition?: firestore.Precondition): this;
+ // Warning: (ae-incompatible-release-tags) The symbol "execute" is marked as @public, but its signature references "Pipeline" which is marked as @beta
+ // Warning: (ae-incompatible-release-tags) The symbol "execute" is marked as @public, but its signature references "PipelineSnapshot" which is marked as @beta
+ execute(pipeline: Pipeline): Promise;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ get(query: firestore.Query): Promise>;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ get(documentRef: firestore.DocumentReference): Promise>;
+ get(aggregateQuery: firestore.AggregateQuery): Promise>;
+ // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}'
+ // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
+ // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
+ getAll(...documentRefsOrReadOptions: Array | firestore.ReadOptions>): Promise>>;
+ // Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration
+ //
+ // @internal
+ rollback(): Promise