v2.0.0
2.0.0 (2020-08-14)
New Features
Query Partition API
New API and backend RPC which allows for fetching a set of cursor keys for a
Collection Group Query. Accessible via the new CollectionGroup#getPartitions(long,ApiStreamObserver)
method.
Read-Only Transaction Options
TransactionOptions
has been refactored to provide the ability to configure options for read-only
transactions along with the existing configuration for read-write transactions.
This new ability is provided via the new TransactionOptions.createReadOnlyOptionsBuilder()
type safe builder.
Along with the new type safe builder for read-only options, there is a new type
safe builder for read-write options as well accessible via TransactionOptions.createReadWriteOptionsBuilder()
. Each of the existing TransactionOptions.create(...)
methods for configuring read-write options has been deprecated in favor of the new builder.
EmulatorCredentials
com.google.cloud.firestore.FirestoreOptions.Builder.FakeCredentials
has been
made static and renamed to com.google.cloud.firestore.FirestoreOptions.EmulatorCredentials
allowing instantiation outside FirestoreOptions.Builder
.
When connecting to the Cloud Firestore Emulator via FirestoreOptions
rather than
the environment variable FIRESTORE_EMULATOR_HOST
, a custom credential implementation
must be specified to allow various admin operations in the emulator. Previously
this required users to create their own implementation due to it not being
possible to construct a FakeCredential
. As part of this change, EmulatorCredentials
is static and therefore able to be constructed from any location.
Breaking Changes
New Firestore Admin Client API Artifact
The Cloud Firestore Admin Client has been migrated to its own maven artifact com.google.cloud:google-cloud-firestore-admin
rather than being bundled in com.google.cloud:google-cloud-firestore
. All
packages and classes have retained their existing names.
The new artifact is included in the com.google.cloud:google-cloud-firestore-bom
,
com.google.cloud:google-cloud-bom
and com.google.cloud:libraries-bom
artifacts and is accessible by adding the new dependency to your pom.xml
file:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-firestore-admin</artifactId>
</dependency>
Removal of v1beta1
Cloud Firestore has been GA for some time now, and the google-cloud-firestore
code base has been using the protos and generated classes for the v1 api since
that time. As such, we will no longer be publishing artifacts for the deprecated
v1beta1 protos. All functionality from v1beta1 is present in v1, and all users
should update any code to use v1.
Removal of support for java.util.Date
in Snapshots
It is no longer possible to configure the ability for java.util.Date
to be
returned from DocumentSnapshot.get(FieldPath)
or DocumentSnapshot.getData()
for properties which are stored as Timestamps in Cloud Firestore.
The default behavior has been to return com.google.cloud.Timestamp
by default
for some time, and is now the only option. Any code that is dependent on the old
behavior must be updated to use Timestamps instead of Date.
Laundry List of Pull Requests
⚠ BREAKING CHANGES
- add support for the Query Partition API (#202)
Firestore#collectionGroup(...)
has a new return typeCollectionGroup
which requires any code that previously used the method be re-compiled to
pick up the new signature.CollectionGroup
extendsQuery
and as such
does not require your code to be updated, only the compiled class files.
- move FirestoreAdminClient and associated classes to new artifact google-cloud-firestore-admin (#311)
- remove deprecated v1beta1 protos and grpc client (#305)
- remove deprecated FirestoreOptions#setTimestampsInSnapshotsEnabled (#308)
- remove deprecated getCollections() methods (#307)
- various renames due to generator changes
Features
- add support for read-only transactions in TransactionOptions (#320) (c25dca3)
- add support for the Query Partition API (#202) (3996548)
Bug Fixes
Dependencies
- update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.5 (#322) (1b21350)
- update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.6 (#324) (b945fdb)
- update jackson dependencies to v2.11.2 (#314) (15d68cd)
Miscellaneous Chores
- enable gapicv2 (#188) (92224bc)
- move FirestoreAdminClient and associated classes to new artifact google-cloud-firestore-admin (#311) (03ef755)
- remove deprecated FirestoreOptions#setTimestampsInSnapshotsEnabled (#308) (7255a42)
- remove deprecated getCollections() methods (#307) (bb4ddf1)
- remove deprecated v1beta1 protos and grpc client (#305) (96adacb)
- add BulkWriter (#323) (e7054df)
- make BulkWriter package private (#330) (ef0869a)