Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@google-cloud/firestore

googleapis6.7mApache-2.07.11.0TypeScript support: included

Firestore Client Library for Node.js

google apis client, google api client, google apis, google api, google, google cloud platform, google cloud, cloud, firestore

readme

Google Cloud Platform logo

Cloud Firestore: Node.js Client

release level npm version

This is the Node.js Server SDK for Google Cloud 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. To access these databases, use the Datastore SDK.

A comprehensive list of changes in each version may be found in the CHANGELOG.

Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in Client Libraries Explained.

Table of contents:

Quickstart

Before you begin

  1. Select or create a Cloud Platform project.
  2. Enable the Cloud Firestore API.
  3. Set up authentication so you can access the API from your local workstation.

Installing the client library

npm install @google-cloud/firestore

Using the client library

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();

Samples

Samples are in the samples/ directory. Each sample's README.md has instructions for running its sample.

Sample Source Code Try it
Limit-to-last-query source code Open in Cloud Shell
Quickstart source code Open in Cloud Shell
Solution-counters source code Open in Cloud Shell

The Cloud Firestore Node.js Client API Reference documentation also contains samples.

Supported Node.js Versions

Our client libraries follow the Node.js 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. 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.

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

Contributing

Contributions welcome! See the Contributing Guide.

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.

License

Apache Version 2.0

See LICENSE

changelog

Changelog

npm history

7.11.0 (2024-12-05)

Features

  • [proto] add Database.CmekConfig and Database.cmek_config (information about CMEK enablement) (2779896)
  • [proto] add Database.delete_time (the time a database was deleted, if it ever was) (2779896)
  • [proto] add Database.previous_id (if a database was deleted, what ID it was using beforehand) (2779896)
  • [proto] add Database.SourceInfo and Database.source_info (information about database provenance, specifically for restored databases) (2779896)
  • [proto] allow specifying an encryption_config when restoring a database (2779896)
  • Enable tracing via OpenTelemetry. (#2218) (1ddb62e)
  • Support fire-admin tag for Admin Node SDK (#2238) (#2252) (1339dc2)

Bug Fixes

  • Use correct limit when retrying a limit query stream with a cursor (#2203) (ab94092)

7.10.0 (2024-09-05)

Features

  • Expose proto changes for the bulk delete api (23ce891)
  • Expose the proto changes to support FindNearest.distance_result_field parameter and the FindNearest.distance_threshold parameter (23ce891)
  • Return computed distance and set distance thresholds on VectorQueries (#2090) (b5ca84f)

7.9.0 (2024-06-25)

Features

  • Update FirebaseFirestore.v1 and FirebaseFirestore.v1beta1 auto-gen types (6732d4d)

7.8.0 (2024-05-28)

Features

  • Query profiling for VectorQuery (d406f14)
  • Update Nodejs generator to send API versions in headers for GAPICs (#2041) (6dbe4b0)

7.7.0 (2024-05-07)

Features

  • Add several fields to manage state of database encryption update (5811492)
  • Lazy-started transactions (#2017) (2c726a1)

Bug Fixes

7.6.0 (2024-04-02)

Features

7.5.0 (2024-03-25)

Features

7.4.0 (2024-03-15)

Features

  • A new message Backup is added (#2021) (6bced86)
  • A new message BackupSchedule is added (6bced86)
  • A new message CreateBackupScheduleRequest is added (6bced86)
  • A new message DailyRecurrence is added (6bced86)
  • A new message DeleteBackupRequest is added (6bced86)
  • A new message DeleteBackupScheduleRequest is added (6bced86)
  • A new message GetBackupRequest is added (6bced86)
  • A new message GetBackupScheduleRequest is added (6bced86)
  • A new message ListBackupSchedulesRequest is added (6bced86)
  • A new message ListBackupSchedulesResponse is added (6bced86)
  • A new message ListBackupsRequest is added (6bced86)
  • A new message ListBackupsResponse is added (6bced86)
  • A new message RestoreDatabaseMetadata is added (6bced86)
  • A new message RestoreDatabaseRequest is added (6bced86)
  • A new message UpdateBackupScheduleRequest is added (6bced86)
  • A new message WeeklyRecurrence is added (6bced86)
  • A new method CreateBackupSchedule is added to service FirestoreAdmin (6bced86)
  • A new method DeleteBackup is added to service FirestoreAdmin (6bced86)
  • A new method DeleteBackupSchedule is added to service FirestoreAdmin (6bced86)
  • A new method GetBackup is added to service FirestoreAdmin (6bced86)
  • A new method GetBackupSchedule is added to service FirestoreAdmin (6bced86)
  • A new method ListBackups is added to service FirestoreAdmin (6bced86)
  • A new method ListBackupSchedules is added to service FirestoreAdmin (6bced86)
  • A new method RestoreDatabase is added to service FirestoreAdmin (6bced86)
  • A new method UpdateBackupSchedule is added to service FirestoreAdmin (6bced86)
  • A new resource_definition firestore.googleapis.com/Backup is added (6bced86)
  • A new resource_definition firestore.googleapis.com/BackupSchedule is added (6bced86)
  • Add new types ExplainOptions, ExplainMetrics, PlanSummary, ExecutionStats (#2013) (e598b9d)

Bug Fixes

  • ReadOnly transaction do not need to commit not rollback. (#2007) (6a220a6)
  • Update service definitions (#2016) (ea4b6d0)

7.3.1 (2024-03-04)

Bug Fixes

7.3.0 (2024-01-31)

Features

  • Expose the undeliverable_first_gen_event.proto (b4f7d60)

Bug Fixes

  • Allow an explicit MustExist precondition for update (#1985) (99d60a6)
  • Fix redaction of credentials in Firestore settings (#1989) (98e668b)
  • Improve retry logic for streaming API calls (b4f7d60)
  • Removed unsupported QueryMode, QueryPlan, and ResultSetStats protos (b4f7d60)

7.2.0 (2024-01-16)

Features

  • Add new types QueryMode, QueryPlan, ResultSetStats (#1911) (8f77b68)
  • Expose databaseId and projectId getter on Firestore class (#1937) (d9c867f), closes #1936

Bug Fixes

7.1.1 (2023-11-20)

Bug Fixes

  • Remove temporary header encoding workaround (#1935) (8a4ae5b)
  • Update retry policy to not retry streams that have not made progress receiving documents (170d05b)

7.1.0 (2023-10-11)

Features

7.0.0 (2023-10-03)

⚠ BREAKING CHANGES

  • upgrade to Node 14 (#1900)
  • Fix the UpdateData incorrect parameter type issue (#1887)

Features

  • Fix the UpdateData incorrect parameter type issue (#1887) (0afadef)

Bug Fixes

Miscellaneous Chores

6.8.0 (2023-09-26)

Features

  • Publish proto definitions for SUM/AVG in Firestore (#1856) (ac35b37)

Bug Fixes

  • deps: Use protobufjs v7.2.5 (#1889)
  • Add tests for multiple inequality support (#1878) (8e621d5)

6.7.0 (2023-07-20)

Features

Bug Fixes

6.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) (fe03d02)

6.6.0 (2023-05-18)

Features

  • Add ApiScope and COLLECTION_RECURSIVE query_scope for Firestore index (#1849) (b671452)
  • Add bloom filter related proto fields (#1843) (b64e0c1)
  • Add support for environment variable FIRESTORE_PREFER_REST (#1848) (96b1d2a)

6.5.0 (2023-03-06)

Features

Bug Fixes

6.4.3 (2023-02-16)

Bug Fixes

  • deps: Use google-gax v3.5.3 (#1818) (88981ad)
  • Emulator support for system tests. Run system tests against the emulator using: yarn system-test:grpc:emulator or yarn system-test:rest:emulator (8aedc63)
  • Update the depth validation used when writing documents, so that it matches the validation of the Firestore backend. (789d9eb)

6.4.2 (2023-01-09)

Bug Fixes

  • deps: Use google-gax v3.5.2 (#1794) (b1a0313)
  • Ensure that the client pool consistently uses gRPC clients after transitioning from REST (3068361)
  • Fix duplicates in Query.stream() with back pressure (#1806) (a5b680d)

6.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) (50747ad)

6.4.0 (2022-10-07)

Features

Bug Fixes

6.3.0 (2022-09-22)

Features

Bug Fixes

  • Tests will now verify asynchronous termination of underlying steam, and fix related bug. (#1772) (a1717ff)

6.2.0 (2022-09-13)

Features

Bug Fixes

  • Minify proto JSON files (#1771) (6393fe7)
  • Remove hack in update.sh, and replace with existing pattern for protobuf dependencies. (#1769) (6ba6751)

6.1.0 (2022-09-07)

Features

  • Accept google-gax instance as a parameter (#1757) (ef59a22)

Bug Fixes

  • Better support for fallback mode (#1756) (a029a6e)
  • Don't allow serialization of firestore settings (#1742) (fa0ad66)
  • Pin Typescript to prevent new type checking. (#1764) (dd01b27)
  • Update GAX (#1758) (1931415)
  • Version 7 of protobufjs broke the update.sh script. Added path to built in protobuf. (#1766) (40f1db3)

6.0.0 (2022-07-22)

⚠ BREAKING CHANGES

  • update library to use Node 12 (#1725)

Features

Bug Fixes

  • change REST binding for ListDocuments to support root collection (#1695) (6185f13)
  • deps: update dependency protobufjs to v7 (#1747) (4e8d33c)
  • split v1 and v1beta1 protos to improve startup time (#1664) (f3729cf)

Build System

5.0.2 (2022-01-07)

Bug Fixes

  • remove serializer check from Query.isEqual() (#1654) (f13da18)

5.0.1 (2021-12-02)

Bug Fixes

5.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) (c293955)

4.15.1 (2021-09-03)

Bug Fixes

4.15.0 (2021-08-26)

Features

Bug Fixes

  • Handles identical document ids from different collections. (#1599) (745b608)

4.14.2 (2021-08-17)

Bug Fixes

4.14.1 (2021-08-02)

Bug Fixes

  • avoid destructuring undefined timestamps (#1575) (a61a24a)

4.14.0 (2021-07-30)

Features

  • add "NON_EMPTY_DEFAULT" FieldBehavior (#1554) (8d9c503)
  • allow UnhandledPromiseRejection errors in BulkWriter if no error handler is specified (#1572) (e862ac8)

4.13.2 (2021-07-14)

Bug Fixes

  • deps: google-gax v2.17.1 (#1557) (866bd25)
  • lower batch size on BulkWriter retry to stay under throughput limits (#1556) (f17a36e)

4.13.1 (2021-07-01)

Bug Fixes

4.13.0 (2021-06-29)

Features

Bug Fixes

4.12.3 (2021-06-16)

Bug Fixes

  • bulkWriter: ensure buffered batches are sent after flush (#1535) (115a134)
  • GoogleAdsError missing using generator version after 1.3.0 (#1526) (adfe68e)

4.12.2 (2021-05-27)

Bug Fixes

  • do not leak credentials in Firestore.toJSON() (#1522) (791310f)

4.12.1 (2021-05-27)

Bug Fixes

  • do not load google-gax at client startup (#1517) (2141b08)
  • recursive delete: backporting changes from Java (#1514) (92ea651)
  • return results from getPartitions() in order (#1521) (c8168a8)

4.12.0 (2021-05-19)

Features

4.11.1 (2021-05-13)

Bug Fixes

4.11.0 (2021-05-05)

Features

4.10.1 (2021-04-28)

Bug Fixes

  • type of QuerySnapshot.docChanges() should be generic (#1484) (3ed1929)

4.10.0 (2021-04-15)

Features

Bug Fixes

  • use BigInt when calculating nanos in Timestamp.fromMillis() (#1468) (cf1949f)

4.9.9 (2021-04-07)

Bug Fixes

  • BulkWriter: apply rate limiter before sending batch (#1451) (3a50f8b)
  • remove floating point rounding error in Timestamp.fromMillis() (#1464) (97e7281)

4.9.8 (2021-03-15)

Bug Fixes

4.9.7 (2021-03-09)

Bug Fixes

  • export v1 and v1beta1 client class types correctly (#1445) (6c9319e)
  • retry BulkWriter deletes that fail with RST_STREAM error (#1442) (cccf48d)

4.9.6 (2021-03-03)

Bug Fixes

  • set default max ratelimiter throughput to 10k for BulkWriter (#1439) (c06fb3c)

4.9.5 (2021-03-02)

Bug Fixes

  • add typings to v1 and v1beta in firestore.d.ts (#1433) (47238a9)

4.9.4 (2021-02-15)

Bug Fixes

4.9.3 (2021-02-09)

Bug Fixes

  • use Array.isArray instead of an instanceof check (#1417) (4a8c3cf)

4.9.2 (2021-02-05)

Bug Fixes

4.9.1 (2021-01-26)

Bug Fixes

  • handle ignoreUndefinedProperties in set(merge: true) (#1396) (d870c9d)

4.9.0 (2021-01-25)

Features

4.8.1 (2020-12-16)

Bug Fixes

  • release clients that received a RST_STREAM error (#1380) (0296dd6)

4.8.0 (2020-12-03)

Features

Bug Fixes

  • stop using GRPC channels after RST_STREAM (#1373) (504bb5f)

4.7.2 (2020-11-25)

Bug Fixes

4.7.1 (2020-11-10)

Bug Fixes

  • do not modify options object, use defaultScopes (#1360) (bd40d3a)
  • ignore 'undefined' in update() with UpdateMap (#1363) (9bad804)
  • remove unneeded async signature from BulkWriter.sendBatch() (#1361) (b5cf449)

4.7.0 (2020-11-05)

Features

  • add ability to specify custom headers for individual RPC types (#1355) (0900379)

4.6.1 (2020-11-03)

Bug Fixes

  • create new batch for writes to the same doc (#1352) (bd5adc3)

4.6.0 (2020-11-03)

Features

  • add onWriteError() and onWriteResult() handlers to BulkWriter (#1315) (a173f4d)

Bug Fixes

  • retry transactions that fail with expired transaction IDs (#1347) (a18ab50)

4.5.0 (2020-10-26)

Features

  • add implicit ordering for startAt(DocumentReference) calls (#1328) (e9afa38)
  • add support for Partition API (#1320) (51961c3)

Bug Fixes

  • retry PartitionQuery for INTERNAL and DEADLINE_EXCEEDED (#1336) (fdf5462)
  • simplify BulkWriter logic (#1321) (b493baf)
  • speed up listDocuments pagination (#1344) (498301d)
  • Update getAll example in documentation (#1326) (721fce0)
  • update required field to implement NodeJS.Timeout (#1338) (6b7371b)
  • firestore/v1: give PartitionQuery retry/timeout config (#1334) (39a30c2)

4.4.0 (2020-09-29)

Features

  • add starting/max rates to BulkWriterOptions (#1305) (57dcf1c)

4.3.0 (2020-09-22)

Features

Bug Fixes

  • add capacity logging to RateLimiter (#1287) (befe625)
  • allow setLogFunction(null) (#1304) (20b1226)
  • bulkWriter: writing to the same document does not create a new batch (#1298) (6243d62)
  • change typings for select() to return Query<DocumentData> (#1303) (b678857)
  • correct BulkWriter types in firestore.d.ts (#1284) (382128b)

4.2.0 (2020-07-31)

Features

  • allow Settings.host to be used when Settings.servicePath is set (#1275) (34d6728)

4.1.2 (2020-07-24)

Bug Fixes

  • add Firestore.bulkWriter to firestore.d.ts (#1272) (5e7e627)

4.1.1 (2020-07-09)

Bug Fixes

4.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) (d0c6c4b)

4.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 (2020-06-19)

Bug Fixes

  • reject all promises with errors (#1224) (9118521)
  • restart onSnapshot() listeners that stop receiving updates (#1220) (49ca641)

3.8.5 (2020-06-10)

Bug Fixes

3.8.4 (2020-06-01)

Bug Fixes

  • send Authentication header with every emulator request (#1105) (83f617c)

3.8.3 (2020-05-31)

Bug Fixes

  • return null for 'parent' call on root collection (#1099) (c5c0b15)

3.8.2 (2020-05-30)

Bug Fixes

3.8.1 (2020-05-27)

Bug Fixes

  • Add tests to check fields used in whereIn should be equality filters (#1081) (3153dd2)
  • capture error stacks across async calls (#1088) (7acdd7e)

3.8.0 (2020-05-13)

Features

Bug Fixes

3.7.5 (2020-04-25)

Bug Fixes

3.7.4 (2020-04-09)

Bug Fixes

3.7.3 (2020-03-31)

Bug Fixes

  • support array of references for IN queries (#993) (a6d8fe0)

3.7.2 (2020-03-25)

Bug Fixes

  • fix flaky contention test (#979) (f294998)
  • fix: use Random Number from crypto to generate AutoId (05b3363)

3.7.1 (2020-03-16)

Bug Fixes

  • support Query.stream() as first client operation (#971) (a48017c)

3.7.0 (2020-03-11)

Features

3.6.0 (2020-03-09)

Features

3.5.1 (2020-02-19)

Bug Fixes

  • collectionReference.add() validation (#925) (19c2c75)
  • pass x-goog-request-params header for streaming calls (#920) (cfbe19e)
  • propagate converter in QueryOptions.with() (#931) (e35a098)
  • wait for operations to complete before deleting clients (#915) (1e5d63f)

3.5.0 (2020-02-07)

Features

Bug Fixes

  • add missing generics on query (#917) (c5b9442)
  • better parameter naming in path template helpers (aac02f4)
  • retry streaming methods if initial write errored (#897) (2ec0489)

3.4.1 (2020-01-22)

Bug Fixes

  • do not assume all custom objects have constructors (#893) (f668e8e)

3.4.0 (2020-01-15)

Features

Bug Fixes

  • don't format log message if logging is disabled (#874) (b7b5fc9)
  • disable non-transactional retries for Code ABORTED (#881) (82273ec)
  • manually retry ABORTED reads in transactions (#883) (7562033)
  • remove ticks from code comments (#885) (b2740ed)

3.3.4 (2020-01-12)

Bug Fixes

3.3.3 (2020-01-08)

Bug Fixes

  • support Objects created with Object.create({}) (#842) (a85f0c3)
  • use rejected Promise for terminate() (#845) (f2c4d91)

3.3.2 (2020-01-06)

Bug Fixes

  • add quotes to field name to avoid ambiguity (#860) (8caee71)

3.3.1 (2020-01-06)

Bug Fixes

  • don't recreate instances when client is idle (0aa2a8b)

3.3.0 (2020-01-03)

Features

  • add Symbol.asyncInterator to Query.stream() (#843) (68795c4)
  • use GAX retry config for streams (#847) (218a4c6)

Bug Fixes

3.2.0 (2019-12-30)

Features

  • allow specifying how many idle GRPC channels to keep (#837) (37e93da)

Bug Fixes

  • reduce overhead for listDocuments()/listCollections() (#838) (5c870e6)

3.1.0 (2019-12-19)

Features

Bug Fixes

  • deps: update dependency deep-equal to v2 (#821) (25472e1)

3.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) (5000b2d)
  • remove deprecated timestampInSnapshots setting (#808) (f37fffc)

Bug Fixes

  • close GRPC channel when we dispose of clients (#779) (22ef0d0)

2.6.1 (2019-12-05)

Bug Fixes

  • deps: pin TypeScript below 3.7.0 (0d4e558)
  • docs: snippets are now replaced in jsdoc comments (#795) (396bebb)

2.6.0 (2019-11-01)

Features

2.5.0 (2019-10-22)

Features

  • introduces ARRAY_CONTAINS_ANY and IN to operator enum (2c8869d)

Bug Fixes

2.4.0 (2019-10-03)

Bug Fixes

  • provide custom error for FieldValue subclasses (#771) (29c3e9b)
  • use compatible version of google-gax (b0c89c5)

Features

  • ability to specify the Collection Group query scope in the V1 Admin API (#762) (b16cd40)

2.3.0 (2019-09-09)

Features

  • load protos from JSON, grpc-fallback support (#749) (6cb9d68)

2.2.9 (2019-08-30)

Bug Fixes

2.2.8 (2019-08-22)

Bug Fixes

  • serialization does not work with null objects (#736) (870d6a7)

2.2.7 (2019-08-16)

Bug Fixes

2.2.6 (2019-08-02)

Bug Fixes

  • allow calls with no request, add JSON proto (#725) (8b0624b)

2.2.5 (2019-08-02)

Bug Fixes

  • Better error for Collection Group Queries with documentId() cursors (#720) (169286d)

2.2.4 (2019-07-08)

Bug Fixes

  • Don't re-open streams on 'error' and 'end' (#713) (104a965)

2.2.3 (2019-06-26)

Bug Fixes

  • docs: link to reference docs section on googleapis.dev (#701) (d7c89a8)
  • Relax validation of FIRESTORE_EMULATOR_HOST in settings() (#703) (daff9de)

2.2.2 (2019-06-25)

Bug Fixes

  • Support non-ISO-8859-1 Collection Names in Queries (fc6f839)
  • Unset servicePath when FIRESTORE_EMULATOR_HOST is set (#696) (5a19931)
  • Use new stream rather than pipe (#700) (0370e03)

2.2.1 (2019-06-14)

Bug Fixes

2.2.0 (2019-06-06)

Bug Fixes

  • Split settings.host into servicePath and port (#684) (b2cbca5)
  • Store large numbers as doubles (#683) (607b3c0)

Features

  • support apiEndpoint override in client constructor (368bc5c)
  • Support host, ssl and FIRESTORE_EMULATOR_HOST for endpoint configuration (#680) (d15f29d)

2.1.1 (2019-05-30)

Dependencies

  • deps: Pin @gprc/grpc-js to 0.4.0 (#668)

Internal / Testing Changes

  • build: remove verbose logging from test scripts (#665)
  • build: ignore proto files in test coverage (#664)

2.1.0 (2019-05-28)

Bug Fixes

  • Add overloads for doc() and doc(id:string) (#662) (cb189e9)
  • retry on abort and limit retry count to 10 (#655) (9e97656)

Features

  • Support listDocuments()/listCollections() via the Firestore Emulator (#654) (eaf5a4e)

2.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

Build System

Code Refactoring

  • deprecation: remove deprecated getCollections() (#624) (43ac9c6)
  • deprecation: remove legacy support for array arguments (#625) (54dd405)

v1.3.0

04-26-2019 16:54 PDT

New Features

  • feature: Adding CollectionGroup queries (#578)(#595)

Dependencies

  • chore(deps): update dependency nyc to v14 (#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)

v1.2.0

03-21-2019 14:17 PDT

New Features

  • feature: Release the V1 Admin API (#590) The Firestore Node SDK now exposes the Firestore Admin API (via v1.FirebaseAdminClient()).

Implementation Changes

  • deps/refactor: Removing @google-cloud/projectify (#564)

Dependencies

  • chore(deps): update dependency hard-rejection to v2

Documentation

  • fix(docs): add namespaces so docs are generated (#591)
  • docs: fix typo in doc strings (#585)

Internal / Testing Changes

  • chore: publish to npm using wombat (#586)
  • build: use per-repo publish token (#582)
  • refactor: update json import paths (#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)

Implementation Changes

  • fix: Allow async functions (#576)
  • fix: Don't call stream.end() on Watch ended by server (#565)

Internal / Testing Changes

  • refactor: async/await to test/order.ts (#566)
  • build: Add docuploader credentials to node publish jobs (#572)
  • build: update release config (#570)
  • build: use node10 to run samples-test, system-test etc (#571)

v1.0.2

03-04-2019 13:32 PST

Implementation Changes

  • fix: throw on invalid credentials (#548)

Dependencies

  • fix(deps): update dependency google-gax to ^0.25.0 (#535)
  • chore(deps): update dependency mocha to v6
  • chore(deps): update dependency duplexify to v4 (#539)

Documentation

  • docs: update comments on protos (#559)
  • docs: update API doc comments (#557)
  • docs: update links in contrib guide (#550)
  • docs: add lint/fix example to contributing guide (#541)
  • docs: fix example comments (#540)
  • doc: show GA message in README.md (#536)
  • Add note about Datastore mode (#552)
  • chore: move CONTRIBUTING.md to root (#543)
  • docs: update contributing path in README (#544)

Internal / Testing Changes

  • refactor(typescript): enable noImplicitAny (#553)
  • chore: update array types (#555)
  • Finish TypeScript Migration (#512)
  • refactor: improve generated code style. (#538)
  • Remove unhandled Promise rejection warning (#556)
  • build: use linkinator for docs test (#549)
  • build: create docs test npm scripts (#547)
  • build: test using @grpc/grpc-js in CI (#546)

v1.0.1

01-29-2019 14:02 PST

Documentation

  • doc: update README.md to show this library as GA (#532)
  • fix(samples): constructor doesn't need project or cred options (#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)
  • fix(deps): update dependency google-gax to ^0.24.0 (#529)

Documentation

  • build: ignore googleapis.com in doc link check (#527)
  • docs: fix import links in the jsdocs (#524)

Internal / Testing Changes

  • chore: update year in the license headers. (#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)
  • fix: update grpc retry config (#464)

New Features

  • feat: update to v1 protos (#516)
  • feat: add additional field transform types (#521)

Dependencies

  • fix(deps): update dependency google-gax to ^0.23.0 (#518)

Documentation

  • fix(docs): remove unused long running operations types
  • docs: elaborate on QuerySnapshot.forEach (#480)
  • docs: update doc writetime (#475)
  • docs: Fix example for writeTime (#474)
  • chore: update license file (#473)
  • docs: update readme badges (#470)

Internal / Testing Changes

  • build: check broken links in generated docs (#511)
  • chore(build): inject yoshi automation key (#492)
  • chore: update nyc and eslint configs (#491)
  • chore: fix publish.sh permission +x (#489)
  • fix(build): fix Kokoro release script (#488)
  • build: add Kokoro configs for autorelease (#487)
  • chore: add synth.metadata (#485)
  • chore: always nyc report before calling codecov (#482)
  • chore: nyc ignore build/test by default (#479)
  • chore(build): update the prettier config (#476)
  • chore(deps): update dependency typescript to ~3.2.0 (#467)
  • fix(build): fix system key decryption (#468)
  • Adding array-contains to error message (#465)

v0.17.0

Implementation Changes

  • Regenerate library with synth.py customizations (#345)
    • contains some documentation and internal timeout changes
  • Converting backoff.js to TypeScript (#328)
  • Making .dotChanges a method (#324)

Dependencies

  • chore(deps): update dependency nyc to v13 (#329)
  • fix(deps): update dependency google-gax to ^0.19.0 (#325)

Documentation

  • Fix DocumentReference.get() docs (#332)

Internal / Testing Changes

  • Retry npm install in CI (#341)
  • make synth.py generate library to ./dev (#337)
  • Revert "Re-generate library using /synth.py (#331)" (#334)
  • Re-generate library using /synth.py (#331)