From ca7ddd8e00fd8d47499bc77f9d98edb41ca75e71 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 11:13:17 -0400 Subject: [PATCH 01/22] dataconnect: Replace "firebase tools" terminology with "Firebase CLI" in kdoc comments. This addresses code review feedback on cl/808681857 (b/445952431). --- .../dataconnect/testutil/DataConnectBackend.kt | 10 +++++----- .../firebase/dataconnect/FirebaseDataConnect.kt | 14 +++++++------- .../dataconnect/generated/GeneratedConnector.kt | 2 +- .../dataconnect/generated/GeneratedOperation.kt | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/firebase-dataconnect/androidTestutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/DataConnectBackend.kt b/firebase-dataconnect/androidTestutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/DataConnectBackend.kt index a62e1c6008f..de88203fe05 100644 --- a/firebase-dataconnect/androidTestutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/DataConnectBackend.kt +++ b/firebase-dataconnect/androidTestutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/DataConnectBackend.kt @@ -81,11 +81,11 @@ import java.net.URL * - https://screenshot.googleplex.com/AmNdgDkWmR4gQXr * - https://screenshot.googleplex.com/8Aq5YKUXCLUAjKr * - * When using "autopush" or "staging", the `firebase-tools` cli must be told about the URL of the - * Data Connect server to which to deploy using the `FIREBASE_DATACONNECT_URL` environment variable. - * This only matters if running a command line `firebase deploy --only dataconnect` or other - * `firebase` commands that talk to a Data Connect backend. See the documentation of [Staging] and - * [Autopush] for details. + * When using "autopush" or "staging", the Firebase CLI must be told about the URL of the Data + * Connect server to which to deploy using the `FIREBASE_DATACONNECT_URL` environment variable. This + * only matters if running a command line `firebase deploy --only dataconnect` or other `firebase` + * commands that talk to a Data Connect backend. See the documentation of [Staging] and [Autopush] + * for details. */ sealed interface DataConnectBackend { diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt index 6e344d1efa6..c36c0c811b5 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt @@ -48,11 +48,11 @@ import kotlinx.serialization.modules.SerializersModule * ### Usage with the Generated SDK * * [FirebaseDataConnect] is the entry point to the Firebase Data Connect API; however, it is mostly - * intended to be an implementation detail for the code generated by Firebase's tools, which provide - * a type-safe API for running the queries and mutations. The generated classes and functions are - * colloquially referred to as the "generated SDK" and will encapsulate the API defined in this - * package. Applications are generally recommended to use the "generated SDK" rather than using this - * API directly to enjoy the benefits of a type-safe API. + * intended to be an implementation detail for the code generated by the Firebase CLI, which + * provides a type-safe API for running the queries and mutations. The generated classes and + * functions are colloquially referred to as the "generated SDK" and will encapsulate the API + * defined in this package. Applications are generally recommended to use the "generated SDK" rather + * than using this API directly to enjoy the benefits of a type-safe API. * * ### Obtaining Instances * @@ -127,11 +127,11 @@ public interface FirebaseDataConnect : AutoCloseable { * called after a query or mutation has been executed. Calling this method causes the values in * [DataConnectSettings.host] and [DataConnectSettings.sslEnabled] to be ignored. * - * To start the Data Connect emulator from the command line, first install Firebase Tools as + * To start the Data Connect emulator from the command line, first install the Firebase CLI as * documented at https://firebase.google.com/docs/emulator-suite/install_and_configure then run * `firebase emulators:start --only auth,dataconnect`. Enabling the "auth" emulator is only needed * if using [com.google.firebase.auth.FirebaseAuth] to authenticate users. You may also need to - * specify `--project ` if the Firebase tools are unable to auto-detect the project ID. + * specify `--project ` if the Firebase CLI is unable to auto-detect the project ID. * * @param host The host name or IP address of the Data Connect emulator to which to connect. The * default value, 10.0.2.2, is a magic IP address that the Android Emulator aliases to the host diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt index 7360edc3e9b..b04ef68636b 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt @@ -21,7 +21,7 @@ import com.google.firebase.dataconnect.FirebaseDataConnect /** * The interface to be implemented by the over-arching "connector" classes that are generated by the - * Firebase Tools code generation. + * Firebase CLI code generation. * * ### Safe for Concurrent Use * diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedOperation.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedOperation.kt index b3011e5890b..cae9b14b64b 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedOperation.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedOperation.kt @@ -24,7 +24,7 @@ import kotlinx.serialization.SerializationStrategy /** * The parent of [GeneratedQuery] and [GeneratedMutation], which are to be implemented by per-query - * and per-mutation classes, respectively, generated by the Firebase Tools code generation. + * and per-mutation classes, respectively, generated by the Firebase CLI code generation. * * ### Safe for Concurrent Use * From 430151422ab88f62f45f645f9914bd09846046ff Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 11:20:00 -0400 Subject: [PATCH 02/22] DataConnectOperationFailureResponse.kt: fix kdoc link to https://spec.graphql.org/draft/#sec-Errors --- .../dataconnect/DataConnectOperationFailureResponse.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectOperationFailureResponse.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectOperationFailureResponse.kt index e17fc091e63..58e6a2bc216 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectOperationFailureResponse.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectOperationFailureResponse.kt @@ -41,7 +41,8 @@ public interface DataConnectOperationFailureResponse { /** * The list of errors provided by the backend in the response message; may be empty. * - * See https://spec.graphql.org/draft/#sec-Errors for details. + * See [https://spec.graphql.org/draft/#sec-Errors](https://spec.graphql.org/draft/#sec-Errors) + * for details. */ public val errors: List @@ -69,7 +70,8 @@ public interface DataConnectOperationFailureResponse { /** * Information about the error, as provided in the response payload from the backend. * - * See https://spec.graphql.org/draft/#sec-Errors for details. + * See [https://spec.graphql.org/draft/#sec-Errors](https://spec.graphql.org/draft/#sec-Errors) + * for details. */ public interface ErrorInfo { /** The error's message. */ From acfbcb67c3d98cb54a8d328aa0c0d5edb8a6351e Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 11:24:08 -0400 Subject: [PATCH 03/22] DataConnectOperationFailureResponse.kt: remove reference to non-existent function DataConnectOperationFailureResponse.toJson (b/446167496) --- .../dataconnect/DataConnectOperationFailureResponse.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectOperationFailureResponse.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectOperationFailureResponse.kt index 58e6a2bc216..2ae5882db4b 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectOperationFailureResponse.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectOperationFailureResponse.kt @@ -33,9 +33,9 @@ public interface DataConnectOperationFailureResponse { * * [Double] * * [List] containing any of the types in this list of types * * [Map] with [String] keys and values of the types in this list of types - * - * Consider using [toJson] to get a higher-level object. */ + // TODO(b/446167496) Add a link to [toJson] in the kdoc comments above when the toJson extension + // function is implemented. public val rawData: Map? /** From 6e468f84b0a89a31fdc4a6b4a431b3b9e07cd2f6 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 11:36:32 -0400 Subject: [PATCH 04/22] FirebaseDataConnect.kt: make link to 'install the Firebase CLI' a hyperlink rather than just plain text --- .../firebase/dataconnect/FirebaseDataConnect.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt index c36c0c811b5..87f162865f3 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt @@ -127,11 +127,12 @@ public interface FirebaseDataConnect : AutoCloseable { * called after a query or mutation has been executed. Calling this method causes the values in * [DataConnectSettings.host] and [DataConnectSettings.sslEnabled] to be ignored. * - * To start the Data Connect emulator from the command line, first install the Firebase CLI as - * documented at https://firebase.google.com/docs/emulator-suite/install_and_configure then run - * `firebase emulators:start --only auth,dataconnect`. Enabling the "auth" emulator is only needed - * if using [com.google.firebase.auth.FirebaseAuth] to authenticate users. You may also need to - * specify `--project ` if the Firebase CLI is unable to auto-detect the project ID. + * To start the Data Connect emulator from the command line, first + * [install the Firebase CLI](https://firebase.google.com/docs/emulator-suite/install_and_configure) + * then run `firebase emulators:start --only auth,dataconnect`. Enabling the "auth" emulator is + * only needed if using [com.google.firebase.auth.FirebaseAuth] to authenticate users. You may + * also need to specify `--project ` if the Firebase CLI is unable to auto-detect the + * project ID. * * @param host The host name or IP address of the Data Connect emulator to which to connect. The * default value, 10.0.2.2, is a magic IP address that the Android Emulator aliases to the host From 0d77e15946f232feb1024b2ee9ab5ee6b8bb4d9d Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 11:45:36 -0400 Subject: [PATCH 05/22] dataconnect: change to "sentence case" rather than "title case" in kdoc comment headings, as per the style guide. This addresses code review feedback on cl/808681857 (b/445952341). --- firebase-dataconnect/README.md | 12 ++++++------ firebase-dataconnect/emulator/README.md | 12 ++++++------ .../com/google/firebase/dataconnect/AnyValue.kt | 2 +- .../google/firebase/dataconnect/ConnectorConfig.kt | 2 +- .../firebase/dataconnect/DataConnectSettings.kt | 2 +- .../firebase/dataconnect/FirebaseDataConnect.kt | 14 +++++++------- .../com/google/firebase/dataconnect/LocalDate.kt | 2 +- .../com/google/firebase/dataconnect/MutationRef.kt | 8 ++++---- .../google/firebase/dataconnect/OperationRef.kt | 8 ++++---- .../com/google/firebase/dataconnect/QueryRef.kt | 8 ++++---- .../firebase/dataconnect/QuerySubscription.kt | 10 +++++----- .../dataconnect/generated/GeneratedConnector.kt | 4 ++-- .../dataconnect/generated/GeneratedMutation.kt | 4 ++-- .../dataconnect/generated/GeneratedOperation.kt | 4 ++-- .../dataconnect/generated/GeneratedQuery.kt | 4 ++-- 15 files changed, 48 insertions(+), 48 deletions(-) diff --git a/firebase-dataconnect/README.md b/firebase-dataconnect/README.md index 168d9dbdded..c8b1d53337e 100644 --- a/firebase-dataconnect/README.md +++ b/firebase-dataconnect/README.md @@ -13,7 +13,7 @@ To build Firebase Data Connect, from the source root run: ./gradlew :firebase-dataconnect:assembleRelease ``` -## Unit Testing +## Unit testing To run unit tests for Firebase Data Connect, from the source root run: @@ -21,7 +21,7 @@ To run unit tests for Firebase Data Connect, from the source root run: ./gradlew :firebase-dataconnect:check ``` -## Integration Testing +## Integration testing Running integration tests requires a Firebase project because they connect to the Firebase Data Connect backend. @@ -34,7 +34,7 @@ Make sure you have created a Firebase Data Connect instance for your project, be By default, integration tests run against the Firebase Data Connect emulator. -### Setting up the Firebase Data Connect Emulator +### Setting up the Firebase Data Connect emulator The integration tests require that the Firebase Data Connect emulator is running on port 9399, which is default when running it via the Data Connect Toolkit. @@ -57,7 +57,7 @@ is default when running it via the Data Connect Toolkit. To run the integration tests against prod, select `DataConnectProdIntegrationTest` run configuration. -### Run on Local Android Emulator +### Run on local Android emulator Then run: @@ -79,7 +79,7 @@ Run: ./gradlew :firebase-dataconnect:deviceCheck ``` -## Code Formatting +## Code formatting Run below to format Kotlin and Java code: @@ -90,7 +90,7 @@ Run below to format Kotlin and Java code: See [here](../README.md#code-formatting) if you want to be able to format code from within Android Studio. -## Build Local Jar of Firebase Data Connect SDK +## Build local jar of Firebase Data Connect SDK ```bash ./gradlew -PprojectsToPublish="firebase-dataconnect" publishReleasingLibrariesToMavenLocal diff --git a/firebase-dataconnect/emulator/README.md b/firebase-dataconnect/emulator/README.md index 9003fc04d16..d6166c1dd70 100644 --- a/firebase-dataconnect/emulator/README.md +++ b/firebase-dataconnect/emulator/README.md @@ -17,7 +17,7 @@ Here is a summary of the detailed steps from below: 5. Start the Postgresql container: `./start_postgres_pod.sh` 6. Start the emulator: `./cli -alsologtostderr=1 -stderrthreshold=0 dev` -## Step 1: Compile Firebase Data Connect Emulator +## Step 1: Compile Firebase Data Connect emulator Compile the Firebase Data Connect Emulator in google3 using `blaze`. The build must be done in a gLinux workstation or go/cloudtop instance; namely, building on a macOS host is not supported, even @@ -65,7 +65,7 @@ If successful, the emulator binary will be located at blaze-bin/third_party/firebase/dataconnect/emulator/cli/cli_macos ``` -#### Copy Emulator Binary to Target Machine +#### Copy emulator binary to target machine If the machine used to build the emulator binary is the same as the target machine, then you are done. Otherwise, you need to copy the binary to the target machine. There are two easy ways to do @@ -105,7 +105,7 @@ or chmod a+x cli_macos ``` -#### Precompiled Emulator Binaries +#### Precompiled emulator binaries dconeybe maintains a directory with precompiled emulator binaries: @@ -114,7 +114,7 @@ http://x20/teams/firestore-clients/DataConnectEmulator At the time of writing, these builds incorporate the patch to remove vector support, as mentioned in the "Troubleshooting" section below. -## Step 2: Start Postgresql Server +## Step 2: Start Postgresql server The Firebase Data Connect emulator requires a real Postgresql server to talk to. Installing and configuring a Postgresql server on a given platform is a tedious and non-standard process. Moreover, @@ -151,7 +151,7 @@ To install Podman, run these commands: The "machine" commands create and start the Linux virtual machine, respectively. -#### Launch the Postgresql Containers +#### Launch the Postgresql containers A handy helper script is all that is needed to start the Postgresql server: @@ -168,7 +168,7 @@ the Postgresql server and delete the Postgresql server's database. There is also a Web UI called "pgadmin4" that can be used to visually interact with the database. The URL and login credentials are included in the final lines of output from the script. -#### Launch the Data Connect Emulator +#### Launch the Data Connect emulator With the Postgresql containers running, launch the Data Connect emulator with this command: diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt index ec22fde7ce8..7595a553aa4 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt @@ -34,7 +34,7 @@ import kotlinx.serialization.serializer /** * Represents a variable or field of the Data Connect custom scalar type `Any`. * - * ### Valid Values for `AnyValue` + * ### Valid values for `AnyValue` * * `AnyValue` can encapsulate [String], [Boolean], [Double], a [List] of one of these types, or a * [Map] whose values are one of these types. The values can be arbitrarily nested (e.g. a list that diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/ConnectorConfig.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/ConnectorConfig.kt index d1fa9f999ab..d98a114ca0a 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/ConnectorConfig.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/ConnectorConfig.kt @@ -22,7 +22,7 @@ import java.util.Objects * Information about a Firebase Data Connect "connector" that is used by [FirebaseDataConnect] to * connect to the correct Google Cloud resources. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [ConnectorConfig] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectSettings.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectSettings.kt index 2d9f5e1c9eb..21411f09390 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectSettings.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/DataConnectSettings.kt @@ -21,7 +21,7 @@ import java.util.Objects /** * Settings that control the behavior of [FirebaseDataConnect] instances. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [DataConnectSettings] are thread-safe and may be safely called * and/or accessed concurrently from multiple threads and/or coroutines. diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt index 87f162865f3..702c1886328 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt @@ -36,7 +36,7 @@ import kotlinx.serialization.modules.SerializersModule * [https://firebase.google.com/products/data-connect](https://firebase.google.com/products/data-connect) * for full details about the Firebase Data Connect product. * - * ### GraphQL Schema and Operation Definition + * ### GraphQL schema and operation definition * * The database schema and operations to query and mutate the data are authored in GraphQL and * uploaded to the server. Then, the queries and mutations can be executed by name, providing @@ -45,7 +45,7 @@ import kotlinx.serialization.modules.SerializersModule * name and a variable for the person's age. Similarly, a query to retrieve a row from the "person" * table by its ID could be named "GetPersonById" and require a variable for the person's ID. * - * ### Usage with the Generated SDK + * ### Usage with the generated SDK * * [FirebaseDataConnect] is the entry point to the Firebase Data Connect API; however, it is mostly * intended to be an implementation detail for the code generated by the Firebase CLI, which @@ -54,7 +54,7 @@ import kotlinx.serialization.modules.SerializersModule * defined in this package. Applications are generally recommended to use the "generated SDK" rather * than using this API directly to enjoy the benefits of a type-safe API. * - * ### Obtaining Instances + * ### Obtaining instances * * To obtain an instance of [FirebaseDataConnect] call [FirebaseDataConnect.Companion.getInstance]. * If desired, when done with it, release the resources of the instance by calling @@ -65,7 +65,7 @@ import kotlinx.serialization.modules.SerializersModule * when reporting issues to Google, set [FirebaseDataConnect.Companion.logLevel] to [LogLevel.DEBUG] * . * - * ### Integration with Kotlin Coroutines and Serialization + * ### Integration with Kotlin coroutines and serialization * * The Firebase Data Connect API is designed as a Kotlin-only API, and integrates tightly with * [Kotlin Coroutines](https://developer.android.com/kotlin/coroutines) and @@ -83,12 +83,12 @@ import kotlinx.serialization.modules.SerializersModule * deserializers for classes annotated with `@Serializable`. Of course, applications are free to * write the serializers by hand as well. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [FirebaseDataConnect] are thread-safe and may be safely called * and/or accessed concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [FirebaseDataConnect] interface is _not_ stable for inheritance in third-party libraries, as * new methods might be added to this interface or contracts of the existing methods can be changed. @@ -323,7 +323,7 @@ public interface FirebaseDataConnect : AutoCloseable { * The companion object for [FirebaseDataConnect], which provides extension methods and properties * that may be accessed qualified by the class, rather than an instance of the class. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [Companion] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt index a7c37094ce3..c3fd3a34bc1 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt @@ -66,7 +66,7 @@ import kotlinx.serialization.Serializable * dateClass: java.time.LocalDate # or kotlinx.datetime.LocalDate * ``` * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [FirebaseDataConnect] are thread-safe and may be safely called * and/or accessed concurrently from multiple threads and/or coroutines. diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/MutationRef.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/MutationRef.kt index ad054e021ee..622c844ef0e 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/MutationRef.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/MutationRef.kt @@ -23,12 +23,12 @@ import kotlinx.serialization.modules.SerializersModule /** * A specialization of [OperationRef] for _mutation_ operations. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [MutationRef] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [MutationRef] interface is _not_ stable for inheritance in third-party libraries, as new * methods might be added to this interface or contracts of the existing methods can be changed. @@ -64,12 +64,12 @@ public interface MutationRef : OperationRef { /** * A specialization of [OperationResult] for [MutationRef]. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [MutationResult] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [MutationResult] interface is _not_ stable for inheritance in third-party libraries, as new * methods might be added to this interface or contracts of the existing methods can be changed. diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt index b464feabc0e..dcfd5450d74 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt @@ -27,12 +27,12 @@ import kotlinx.serialization.modules.SerializersModule * [OperationRef] merely serves to provide a common interface for the parts of queries and mutations * that are shared. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [OperationRef] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [OperationRef] interface is _not_ stable for inheritance in third-party libraries, as new * methods might be added to this interface or contracts of the existing methods can be changed. @@ -263,12 +263,12 @@ public interface OperationRef { * Typically, one of the inheritors of [OperationResult] is used, namely [QueryResult] for queries * and [MutationResult] for mutations. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [OperationResult] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [OperationResult] interface is _not_ stable for inheritance in third-party libraries, as new * methods might be added to this interface or contracts of the existing methods can be changed. diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/QueryRef.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/QueryRef.kt index da7486652f4..d4ab582a5bb 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/QueryRef.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/QueryRef.kt @@ -23,12 +23,12 @@ import kotlinx.serialization.modules.SerializersModule /** * A specialization of [OperationRef] for _query_ operations. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [QueryRef] are thread-safe and may be safely called and/or accessed * concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [QueryRef] interface is _not_ stable for inheritance in third-party libraries, as new methods * might be added to this interface or contracts of the existing methods can be changed. @@ -75,12 +75,12 @@ public interface QueryRef : OperationRef { /** * A specialization of [OperationResult] for [QueryRef]. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [QueryResult] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [QueryResult] interface is _not_ stable for inheritance in third-party libraries, as new * methods might be added to this interface or contracts of the existing methods can be changed. diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/QuerySubscription.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/QuerySubscription.kt index f18f3bf125f..d0a7a8d2743 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/QuerySubscription.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/QuerySubscription.kt @@ -22,18 +22,18 @@ import kotlinx.coroutines.flow.* * A facility to subscribe to a query to be notified of updates to the query's data when the query * is executed. * - * ### Notifications are _not_ Realtime + * ### Notifications are _not_ realtime * * At this time the notifications are _not_ realtime, and are _not_ pushed from the server. Instead, * the notifications are sent whenever the query is explicitly executed by calling * [QueryRef.execute]. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [QuerySubscription] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [QuerySubscription] interface is _not_ stable for inheritance in third-party libraries, as * new methods might be added to this interface or contracts of the existing methods can be changed. @@ -88,12 +88,12 @@ public interface QuerySubscription { /** * The result of a query's execution, as notified to a [QuerySubscription]. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [QuerySubscriptionResult] are thread-safe and may be safely called * and/or accessed concurrently from multiple threads and/or coroutines. * - * ### Not Stable for Inheritance + * ### Not stable for inheritance * * The [QuerySubscriptionResult] interface is _not_ stable for inheritance in third-party libraries, * as new methods might be added to this interface or contracts of the existing methods can be diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt index b04ef68636b..0dfe8fe351b 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt @@ -23,12 +23,12 @@ import com.google.firebase.dataconnect.FirebaseDataConnect * The interface to be implemented by the over-arching "connector" classes that are generated by the * Firebase CLI code generation. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [GeneratedConnector] are thread-safe and may be safely called * and/or accessed concurrently from multiple threads and/or coroutines. * - * ### Stable for Inheritance + * ### Stable for inheritance * * The [GeneratedConnector] interface _is_ stable for inheritance in third-party libraries, as new * methods will not be added to this interface and contracts of the existing methods will not be diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedMutation.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedMutation.kt index 1d39bf176d2..99fe6412b04 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedMutation.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedMutation.kt @@ -25,12 +25,12 @@ import kotlinx.serialization.SerializationStrategy /** * The specialization of [GeneratedOperation] for mutations. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [GeneratedMutation] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. * - * ### Stable for Inheritance + * ### Stable for inheritance * * The [GeneratedMutation] interface _is_ stable for inheritance in third-party libraries, as new * methods will not be added to this interface and contracts of the existing methods will not be diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedOperation.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedOperation.kt index cae9b14b64b..797f15e0e1a 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedOperation.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedOperation.kt @@ -26,12 +26,12 @@ import kotlinx.serialization.SerializationStrategy * The parent of [GeneratedQuery] and [GeneratedMutation], which are to be implemented by per-query * and per-mutation classes, respectively, generated by the Firebase CLI code generation. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [GeneratedOperation] are thread-safe and may be safely called * and/or accessed concurrently from multiple threads and/or coroutines. * - * ### Stable for Inheritance + * ### Stable for inheritance * * The [GeneratedOperation] interface _is_ stable for inheritance in third-party libraries, as new * methods will not be added to this interface and contracts of the existing methods will not be diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedQuery.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedQuery.kt index 98087c89943..20ea829914c 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedQuery.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedQuery.kt @@ -25,12 +25,12 @@ import kotlinx.serialization.SerializationStrategy /** * The specialization of [GeneratedOperation] for queries. * - * ### Safe for Concurrent Use + * ### Safe for concurrent use * * All methods and properties of [GeneratedQuery] are thread-safe and may be safely called and/or * accessed concurrently from multiple threads and/or coroutines. * - * ### Stable for Inheritance + * ### Stable for inheritance * * The [GeneratedQuery] interface _is_ stable for inheritance in third-party libraries, as new * methods will not be added to this interface and contracts of the existing methods will not be From 81d47a7e4885850ca0ccc57f10177fd7c8b0c413 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 11:54:47 -0400 Subject: [PATCH 06/22] replace "i.e." and "e.g." with full words, as per the Google style guide. see https://developers.google.com/style/abbreviations#dont-use --- firebase-dataconnect/demo/build.gradle.kts | 2 +- .../emulator/start_postgres_pod.sh | 2 +- .../com/google/firebase/dataconnect/AnyValue.kt | 12 ++++++------ .../google/firebase/dataconnect/ConnectorConfig.kt | 2 +- .../firebase/dataconnect/DataConnectSettings.kt | 2 +- .../com/google/firebase/dataconnect/LogLevel.kt | 3 ++- .../google/firebase/dataconnect/OperationRef.kt | 2 +- .../querymgr/RegisteredDataDeserialzer.kt | 4 ++-- .../dataconnect/ProtoStructDecoderUnitTest.kt | 4 ++-- .../firebase/dataconnect/testutil/TestUtils.kt | 14 +++++++------- .../arbitrary/IntWithEvenNumDigitsDistribution.kt | 4 ++-- 11 files changed, 26 insertions(+), 25 deletions(-) diff --git a/firebase-dataconnect/demo/build.gradle.kts b/firebase-dataconnect/demo/build.gradle.kts index 6ea3cea50fc..21cb96bd496 100644 --- a/firebase-dataconnect/demo/build.gradle.kts +++ b/firebase-dataconnect/demo/build.gradle.kts @@ -67,7 +67,7 @@ dokka { // The remaining code in this file can be omitted from customer facing // documentation. It's here just to make things compile and/or configure -// optional components of the build (e.g. spotless code formatting). +// optional components of the build (for example, spotless code formatting). android { namespace = "com.google.firebase.dataconnect.minimaldemo" diff --git a/firebase-dataconnect/emulator/start_postgres_pod.sh b/firebase-dataconnect/emulator/start_postgres_pod.sh index 7fe1194834e..3111a769abd 100755 --- a/firebase-dataconnect/emulator/start_postgres_pod.sh +++ b/firebase-dataconnect/emulator/start_postgres_pod.sh @@ -66,7 +66,7 @@ cat <( onBufferOverflow = BufferOverflow.SUSPEND, ) - // The latest update (i.e. the update with the highest sequence number) that has ever been emitted - // to `updates`. The `ref` of the value will be null if, and only if, no updates have ever + // The latest update (that is, the update with the highest sequence number) that has ever been + // emitted to `updates`. The `ref` of the value will be null if, and only if, no updates have ever // occurred. private val latestUpdate = MutableStateFlow>>>>( diff --git a/firebase-dataconnect/src/test/kotlin/com/google/firebase/dataconnect/ProtoStructDecoderUnitTest.kt b/firebase-dataconnect/src/test/kotlin/com/google/firebase/dataconnect/ProtoStructDecoderUnitTest.kt index 0eec93d706e..f6e8dbc82a8 100644 --- a/firebase-dataconnect/src/test/kotlin/com/google/firebase/dataconnect/ProtoStructDecoderUnitTest.kt +++ b/firebase-dataconnect/src/test/kotlin/com/google/firebase/dataconnect/ProtoStructDecoderUnitTest.kt @@ -662,8 +662,8 @@ class ProtoStructDecoderUnitTest { } } - // TODO: Add tests for decoding to objects with unsupported field types (e.g. Byte, Char) and - // list elements of unsupported field types (e.g. Byte, Char). + // TODO: Add tests for decoding to objects with unsupported field types (such as Byte or Char) and + // list elements of unsupported field types (such as Byte or Char). } diff --git a/firebase-dataconnect/testutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/TestUtils.kt b/firebase-dataconnect/testutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/TestUtils.kt index 7ec42f7e112..6d20aa5ab5f 100644 --- a/firebase-dataconnect/testutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/TestUtils.kt +++ b/firebase-dataconnect/testutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/TestUtils.kt @@ -136,7 +136,7 @@ const val MAX_SAFE_INTEGER = 9007199254740991.0 /** * Generates and returns a random, valid string suitable to be the "name" of a [FirebaseApp]. * @param key A hardcoded random string that will be incorporated into the returned string; useful - * for correlating the application ID with its call site (e.g. "fmfbm74g32"). + * for correlating the application ID with its call site (for example, "fmfbm74g32"). */ fun randomAppName(key: String) = "appName-$key-${Random.nextAlphanumericString(length = 8)}" @@ -144,14 +144,14 @@ fun randomAppName(key: String) = "appName-$key-${Random.nextAlphanumericString(l * Generates and returns a random, valid string suitable to be the "applicationId" of a * [FirebaseApp]. * @param key A hardcoded random string that will be incorporated into the returned string; useful - * for correlating the application ID with its call site (e.g. "axqm2rajxv"). + * for correlating the application ID with its call site (for example, "axqm2rajxv"). */ fun randomApplicationId(key: String) = "appId-$key-${Random.nextAlphanumericString(length = 8)}" /** * Generates and returns a random, valid string suitable to be the "projectId" of a [FirebaseApp]. * @param key A hardcoded random string that will be incorporated into the returned string; useful - * for correlating the application ID with its call site (e.g. "ncdd6n863r"). + * for correlating the application ID with its call site (for example, "ncdd6n863r"). */ @Deprecated( "use Arb.projectId() from Arbs.kt instead", @@ -163,7 +163,7 @@ fun randomProjectId(key: String) = "projId-$key-${Random.nextAlphanumericString( /** * Generates and returns a random, valid string suitable to be a host name in [DataConnectSettings]. * @param key A hardcoded random string that will be incorporated into the returned string; useful - * for correlating the application ID with its call site (e.g. "cxncg4zbvb"). + * for correlating the application ID with its call site (for example, "cxncg4zbvb"). */ fun randomHost(key: String) = "host.$key.${Random.nextAlphanumericString(length = 8)}" @@ -172,7 +172,7 @@ fun randomSslEnabled() = Random.nextBoolean() /** * Generates and returns a new [DataConnectSettings] object with random values. - * @param hostKey A value to specify to [randomHost] (e.g. "wqxhf5apez"). + * @param hostKey A value to specify to [randomHost] (for example, "wqxhf5apez"). */ fun randomDataConnectSettings(hostKey: String) = DataConnectSettings(host = randomHost(hostKey), sslEnabled = randomSslEnabled()) @@ -180,7 +180,7 @@ fun randomDataConnectSettings(hostKey: String) = /** * Generates and returns a random, valid string suitable for a "request ID". * @param key A hardcoded random string that will be incorporated into the returned string; useful - * for correlating the application ID with its call site (e.g. "9p6dyyr2zp"). + * for correlating the application ID with its call site (for example, "9p6dyyr2zp"). */ @Deprecated( "use Arb.requestId() from Arbs.kt instead", @@ -192,7 +192,7 @@ fun randomRequestId(key: String) = "requestId_${key}_${Random.nextAlphanumericSt /** * Generates and returns a random, valid string suitable for [OperationRef.operationName]. * @param key A hardcoded random string that will be incorporated into the returned string; useful - * for correlating the application ID with its call site (e.g. "sc4kc7mqba"). + * for correlating the application ID with its call site (for example, "sc4kc7mqba"). */ @Deprecated( "use Arb.requestId() from Arbs.kt instead", diff --git a/firebase-dataconnect/testutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/property/arbitrary/IntWithEvenNumDigitsDistribution.kt b/firebase-dataconnect/testutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/property/arbitrary/IntWithEvenNumDigitsDistribution.kt index 4ba810bdd03..ba707e5453d 100644 --- a/firebase-dataconnect/testutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/property/arbitrary/IntWithEvenNumDigitsDistribution.kt +++ b/firebase-dataconnect/testutil/src/main/kotlin/com/google/firebase/dataconnect/testutil/property/arbitrary/IntWithEvenNumDigitsDistribution.kt @@ -30,7 +30,7 @@ import io.kotest.property.arbitrary.int * _not_ included in the "number of digits" count. * * @param range The range of values to produce; if `null` (the default) then use the entire range of - * integers (i.e. `Int.MIN_VALUE..Int.MAX_VALUE`). + * integers (formally, `Int.MIN_VALUE..Int.MAX_VALUE`). * * @see intWithEvenNumDigitsDistribution */ @@ -72,7 +72,7 @@ fun Arb.Companion.intWithEvenNumDigitsDistribution(range: IntRange): Arb { * _not_ included in the "number of digits" count. * * @param range The range of values to produce; if `null` (the default) then use the entire range of - * integers (i.e. `Int.MIN_VALUE..Int.MAX_VALUE`). + * integers (formally, `Int.MIN_VALUE..Int.MAX_VALUE`). * * @see intWithEvenNumDigitsDistribution */ From fd5b0187ca33e8267e46fbed938eacab6d2b78f7 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 12:04:02 -0400 Subject: [PATCH 07/22] OperationRef.kt: kdoc fix: [Int?] -> `Int?` --- .../main/kotlin/com/google/firebase/dataconnect/OperationRef.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt index 8cd1be6cd46..bb3de34b947 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt @@ -81,7 +81,7 @@ public interface OperationRef { * mutation InsertPerson($name: String!, $age: Int) {...} * ``` * - * would have two variables named `"name"` and `"age"` whose values are [String] and [Int?] + * would have two variables named `"name"` and `"age"` whose values are [String] and `Int?` * values, respectively. */ public val variables: Variables From aea04c7f0577ea1295e5997c1358cdc1967ad1d2 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 12:05:05 -0400 Subject: [PATCH 08/22] OperationRef.kt: kdoc typo fix: 'could as follows' -> 'as follows' --- .../kotlin/com/google/firebase/dataconnect/OperationRef.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt index bb3de34b947..5bfa63f6f98 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OperationRef.kt @@ -98,7 +98,7 @@ public interface OperationRef { * query GetPersonById($id: UUID!) { person(id: $id) { name age } } * ``` * - * could define its data class could as follows: + * could define its data class as follows: * * ``` * @Serializable @@ -129,7 +129,7 @@ public interface OperationRef { * mutation InsertPerson($name: String!, $age: Int) {...} * ``` * - * could define its variables class could as follows: + * could define its variables class as follows: * * ``` * @Serializable From 90e796ec94055ad128041566cd0cd83c48e956ff Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 12:11:45 -0400 Subject: [PATCH 09/22] AnyValue.kt: add missing closing parenthesis in kdoc --- .../src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt index cc458bb70da..16c0becc8e3 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt @@ -38,7 +38,7 @@ import kotlinx.serialization.serializer * * `AnyValue` can encapsulate [String], [Boolean], [Double], a [List] of one of these types, or a * [Map] whose values are one of these types. The values can be arbitrarily nested (for example, a - * list that contains a map that contains other maps, and so on. The lists and maps can contain + * list that contains a map that contains other maps, and so on). The lists and maps can contain * heterogeneous values; for example, a single [List] can contain a [String] value, some [Boolean] * values, and some [List] values. The values of a [List] or a [Map] may be `null`. The only * exception is that a variable or field declared as `[Any]` in GraphQL may _not_ have `null` values From cc3c0fb6a3d4a92df83bbf23bbc1cc839dea7502 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 12:13:13 -0400 Subject: [PATCH 10/22] AnyValue.kt: kdoc fix: represented -> representable --- .../src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt index 16c0becc8e3..1ba9d6f66a8 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt @@ -51,7 +51,7 @@ import kotlinx.serialization.serializer * ### Storing `Long` in an `AnyValue` * * To store a [Long] value, converting it to a [Double] can be lossy if the value is sufficiently - * large (or small) to not be exactly represented by [Double]. The _largest_ [Long] value that can + * large (or small) to not be exactly representable by [Double]. The _largest_ [Long] value that can * be stored in a [Double] with its exact value is `2^53 – 1` (`9007199254740991`). The _smallest_ * [Long] value that can be stored in a [Double] with its exact value is `-(2^53 – 1)` * (`-9007199254740991`). This limitation is exactly the same in JavaScript, which does not have a From 8a5b388e1cad488bc48e06781bfeeea44fe5fb66 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 12:14:59 -0400 Subject: [PATCH 11/22] AnyValue.kt: fix typo in kdoc links to MDN articles about MAX_SAFE_INTEGER and MIN_SAFE_INTEGER --- .../main/kotlin/com/google/firebase/dataconnect/AnyValue.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt index 1ba9d6f66a8..5e89e54c15d 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt @@ -57,9 +57,9 @@ import kotlinx.serialization.serializer * (`-9007199254740991`). This limitation is exactly the same in JavaScript, which does not have a * native "int" or "long" type, but rather stores all numeric values in a 64-bit floating point * value. See - * [MAX_SAFE_INTEGER](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER]) + * [MAX_SAFE_INTEGER](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER) * and - * [MIN_SAFE_INTEGER](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER]) + * [MIN_SAFE_INTEGER](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER) * for more details. * * ### Integration with `kotlinx.serialization` From 8a9ea350263195184fdb0c00b1237aafb6b2bbab Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 13:27:39 -0400 Subject: [PATCH 12/22] AnyValue.kt: fix minor kdoc formatting typos --- .../main/kotlin/com/google/firebase/dataconnect/AnyValue.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt index 5e89e54c15d..ae53a9ff34e 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt @@ -72,6 +72,7 @@ import kotlinx.serialization.serializer * * ``` * type Foo @table { value: Any } + * * mutation FooInsert($value: Any) { * key: foo_insert(data: { value: $value }) * } @@ -133,7 +134,7 @@ public class AnyValue internal constructor(internal val protoValue: Value) { /** * The native Kotlin type of the value encapsulated in this object. * - * Although this type is `Any` it will be one of `String, `Boolean`, `Double`, `List` or + * Although this type is `Any` it will be one of `String`, `Boolean`, `Double`, `List` or * `Map`. See the [AnyValue] class documentation for a detailed description of the * types of values that are supported. */ From cc582166878d4d92c47ed8142546d7afcd8f2800 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 13:28:03 -0400 Subject: [PATCH 13/22] AnyValue.kt: kdoc fix: "value" -> "valid" --- .../main/kotlin/com/google/firebase/dataconnect/AnyValue.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt index ae53a9ff34e..be3ea3d4344 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt @@ -103,7 +103,7 @@ public class AnyValue internal constructor(internal val protoValue: Value) { * * An exception is thrown if any of the values of the map, or its sub-values, are invalid for * being stored in [AnyValue]; see the [AnyValue] class documentation for a detailed description - * of value values. + * of valid values. * * This class makes a _copy_ of the given map; therefore, any modifications to the map after this * object is created will have no effect on this [AnyValue] object. @@ -115,7 +115,7 @@ public class AnyValue internal constructor(internal val protoValue: Value) { * * An exception is thrown if any of the values of the list, or its sub-values, are invalid for * being stored in [AnyValue]; see the [AnyValue] class documentation for a detailed description - * of value values. + * of valid values. * * This class makes a _copy_ of the given list; therefore, any modifications to the list after * this object is created will have no effect on this [AnyValue] object. From 0f21ad4c1e3676bfc0985b6658cc6e5961722051 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 13:28:29 -0400 Subject: [PATCH 14/22] AnyValue.kt: kdoc clarification that a "deep copy" is done, as opposed to the implied "shallow copy" --- .../kotlin/com/google/firebase/dataconnect/AnyValue.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt index be3ea3d4344..2023695bf7d 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/AnyValue.kt @@ -105,8 +105,9 @@ public class AnyValue internal constructor(internal val protoValue: Value) { * being stored in [AnyValue]; see the [AnyValue] class documentation for a detailed description * of valid values. * - * This class makes a _copy_ of the given map; therefore, any modifications to the map after this - * object is created will have no effect on this [AnyValue] object. + * This class makes a _deep copy_ of the given map; therefore, any modifications to the map or its + * constituent lists or maps after this object is created will have no effect on this [AnyValue] + * object. */ public constructor(value: Map) : this(value.toValueProto()) @@ -117,8 +118,9 @@ public class AnyValue internal constructor(internal val protoValue: Value) { * being stored in [AnyValue]; see the [AnyValue] class documentation for a detailed description * of valid values. * - * This class makes a _copy_ of the given list; therefore, any modifications to the list after - * this object is created will have no effect on this [AnyValue] object. + * This class makes a _deep copy_ of the given list; therefore, any modifications to the list or + * its constituent lists or maps after this object is created will have no effect on this + * [AnyValue] object. */ public constructor(value: List) : this(value.toValueProto()) From a750d121c2b26e9d450073f00f8441afbb2fb0ca Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 17:00:26 -0400 Subject: [PATCH 15/22] kdoc improvements: replace "toolkit" with "CLI" --- firebase-dataconnect/README.md | 2 +- .../dataconnect/gradle/plugin/DataConnectDslExtension.kt | 4 ++-- .../com/google/firebase/dataconnect/FirebaseDataConnect.kt | 7 ++----- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/firebase-dataconnect/README.md b/firebase-dataconnect/README.md index c8b1d53337e..130b31ea113 100644 --- a/firebase-dataconnect/README.md +++ b/firebase-dataconnect/README.md @@ -37,7 +37,7 @@ By default, integration tests run against the Firebase Data Connect emulator. ### Setting up the Firebase Data Connect emulator The integration tests require that the Firebase Data Connect emulator is running on port 9399, which -is default when running it via the Data Connect Toolkit. +is default when running it via the Firebase CLI. - [Install the Firebase CLI](https://firebase.google.com/docs/cli/). ``` diff --git a/firebase-dataconnect/gradleplugin/plugin/src/main/kotlin/com/google/firebase/dataconnect/gradle/plugin/DataConnectDslExtension.kt b/firebase-dataconnect/gradleplugin/plugin/src/main/kotlin/com/google/firebase/dataconnect/gradle/plugin/DataConnectDslExtension.kt index fa35d4658ad..6b362c41bf3 100644 --- a/firebase-dataconnect/gradleplugin/plugin/src/main/kotlin/com/google/firebase/dataconnect/gradle/plugin/DataConnectDslExtension.kt +++ b/firebase-dataconnect/gradleplugin/plugin/src/main/kotlin/com/google/firebase/dataconnect/gradle/plugin/DataConnectDslExtension.kt @@ -64,8 +64,8 @@ abstract class DataConnectDslExtension @Inject constructor(objectFactory: Object fun emulator(block: DataConnectEmulatorDslExtension.() -> Unit): Unit = block(emulator) /** - * Values to use when running ktfmt to format the code generated by the Data Connect toolkit, - * which override the values from those defined in the outer scope. + * Values to use when running ktfmt to format the code generated by the Firebase CLI, which + * overrides the values defined in the outer scope. */ val ktfmt: DataConnectKtfmtDslExtension = objectFactory.newInstance() diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt index 702c1886328..c25a101440d 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt @@ -308,14 +308,11 @@ public interface FirebaseDataConnect : AutoCloseable { public enum class CallerSdkType { /** * The [FirebaseDataConnect] class is used directly in an application, rather than using the - * code generation done by the Firebase Data Connect toolkit. + * code generation done by the Firebase CLI. */ Base, - /** - * The [FirebaseDataConnect] class is used by code generated by the Firebase Data Connect - * toolkit. - */ + /** The [FirebaseDataConnect] class is used by code generated by the Firebase CLI. */ Generated, } From 6cbc74bfa803590bdfcd80d63e35fbca316cd836 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 17:01:28 -0400 Subject: [PATCH 16/22] kdoc: make http links hypertext --- .../ExperimentalFirebaseDataConnect.kt | 5 +++-- .../google/firebase/dataconnect/LocalDate.kt | 17 +++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/ExperimentalFirebaseDataConnect.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/ExperimentalFirebaseDataConnect.kt index 4529bee9d0c..295c6e2c50f 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/ExperimentalFirebaseDataConnect.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/ExperimentalFirebaseDataConnect.kt @@ -22,8 +22,9 @@ package com.google.firebase.dataconnect * A declaration annotated with [ExperimentalFirebaseDataConnect] is "experimental": its signature * and/or semantics may change in backwards-incompatible ways at any time without notice, up to and * including complete removal. If you have a use case that relies on such a declaration please open - * a "feature request" issue at https://github.com/firebase/firebase-android-sdk requesting the - * declaration's promotion from "experimental" to "fully-supported". + * a "feature request" issue at + * [https://github.com/firebase/firebase-android-sdk](https://github.com/firebase/firebase-android-sdk) + * requesting the declaration's promotion from "experimental" to "fully-supported". */ @MustBeDocumented @Retention(value = AnnotationRetention.BINARY) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt index c3fd3a34bc1..f9389ca0fd5 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt @@ -44,10 +44,10 @@ import kotlinx.serialization.Serializable * The [java.time.LocalDate] class was added in Android API 26 and should be used if it's available * instead of this class. If [java.time.LocalDate] is available then [kotlinx.datetime.LocalDate] is * a completely valid option as well, if it's desirable to take a dependency on - * https://github.com/Kotlin/kotlinx-datetime. + * [kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime). * * Alternately, if your application has its `minSdkVersion` set to a value _less than_ 26, you can - * use "desugaring" (https://developer.android.com/studio/write/java8-support-table) to get access + * use ["desugaring"](https://developer.android.com/studio/write/java8-support-table) to get access * [java.time.LocalDate] class regardless of the API version used at runtime. * * ### Using [java.time.LocalDate] and [kotlinx.datetime.LocalDate] in code generation. @@ -72,9 +72,10 @@ import kotlinx.serialization.Serializable * and/or accessed concurrently from multiple threads and/or coroutines. * * @property year The year. The valid range is between 1583 and 9999, inclusive; however, this is - * _not_ checked or prevented by this class. Values less than 1583 are not forbidden; however, their - * interpretation by the Data Connect backend is unspecified. See - * https://en.wikipedia.org/wiki/ISO_8601#Years for more details. + * _not_ checked or enforced by this class. Values less than 1583 are not strictly forbidden; + * however, their interpretation by the Data Connect backend is unspecified. See + * [https://en.wikipedia.org/wiki/ISO_8601#Years](https://en.wikipedia.org/wiki/ISO_8601#Years) for + * more details. * @property month The month. The valid range is between 1 and 12, inclusive; however, this is _not_ * checked or prevented by this class. * @property day The day of the month. The valid range is between 1 and 31, inclusive; however, this @@ -123,7 +124,7 @@ public class LocalDate(public val year: Int, public val month: Int, public val d * * Be sure to _only_ call this method if [java.time.LocalDate] is available; otherwise the behavior * is undefined. If your application's `minSdkVersion` is greater than or equal to `26`, or if you - * have configured "desugaring" (https://developer.android.com/studio/write/java8-support-table) + * have configured ["desugaring"](https://developer.android.com/studio/write/java8-support-table) * then it is guaranteed to be available. Otherwise, check [android.os.Build.VERSION.SDK_INT] at * runtime and verify that its value is at least [android.os.Build.VERSION_CODES.O] before calling * this method. @@ -157,8 +158,8 @@ public fun java.time.LocalDate.toDataConnectLocalDate(): LocalDate = * * Be sure to _only_ call this method if your application has a dependency on * `org.jetbrains.kotlinx:kotlinx-datetime`; otherwise, the behavior of this method is undefined. If - * your `minSdkVersion` is less than `26` then you _may_ also need to configure "desugaring" - * (https://developer.android.com/studio/write/java8-support-table). + * your `minSdkVersion` is less than `26` then you _may_ also need to configure + * ["desugaring"](https://developer.android.com/studio/write/java8-support-table). * * @see kotlinx.datetime.LocalDate.toDataConnectLocalDate * @see java.time.LocalDate.toDataConnectLocalDate From cd210978887a4e6fa9e9a692c5d1f81a6e17b7a4 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 17:02:02 -0400 Subject: [PATCH 17/22] FirebaseDataConnect.kt: kdoc: clarify wording in CallerSdkType --- .../com/google/firebase/dataconnect/FirebaseDataConnect.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt index c25a101440d..a6534da18cf 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt @@ -300,7 +300,8 @@ public interface FirebaseDataConnect : AutoCloseable { override fun toString(): String /** - * Indicates where the usages of this object are coming from. + * A tag used for analytics purposes to track the source of usages of the Firebase Data Connect + * product. * * This information is merely used for analytics and has no effects on the product's * functionality. From 189c516efc9a7b7bbc36a3a4c681ad20bf44ae7f Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 17:02:38 -0400 Subject: [PATCH 18/22] LocalDate.kt: kdoc: fix javadoc-style {@code ...} block to use kdoc-style backticks --- .../main/kotlin/com/google/firebase/dataconnect/LocalDate.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt index f9389ca0fd5..e2fede56239 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt @@ -22,9 +22,8 @@ import java.util.Objects import kotlinx.serialization.Serializable /** - * A date without a time-zone in the ISO-8601 calendar system, such as {@code 2007-12-03}. This is - * the default Kotlin type used to represent a `Date` GraphQL custom scalar in Firebase Data - * Connect. + * A date without a time-zone in the ISO-8601 calendar system, such as `2007-12-03`. This is the + * default Kotlin type used to represent a `Date` GraphQL custom scalar in Firebase Data Connect. * * ### Description (adapted from [java.time.LocalDate]) * From d4dded0fda51802048c3a5b96910f146bd1efd5e Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 17:03:30 -0400 Subject: [PATCH 19/22] LocalDate.kt: fix kdoc copy/paste error: FirebaseDataConnect -> LocalDate --- .../main/kotlin/com/google/firebase/dataconnect/LocalDate.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt index e2fede56239..1f7ca9eed41 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt @@ -67,8 +67,8 @@ import kotlinx.serialization.Serializable * * ### Safe for concurrent use * - * All methods and properties of [FirebaseDataConnect] are thread-safe and may be safely called - * and/or accessed concurrently from multiple threads and/or coroutines. + * All methods and properties of [LocalDate] are thread-safe and may be safely called and/or + * accessed concurrently from multiple threads and/or coroutines. * * @property year The year. The valid range is between 1583 and 9999, inclusive; however, this is * _not_ checked or enforced by this class. Values less than 1583 are not strictly forbidden; From c5635397f3396ff6010e7c35adc4bd8f31a4bb8c Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 17:04:05 -0400 Subject: [PATCH 20/22] LocalDate.kt: kdoc wording fix: prevented -> enforced --- .../main/kotlin/com/google/firebase/dataconnect/LocalDate.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt index 1f7ca9eed41..c9fe5205cee 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/LocalDate.kt @@ -76,9 +76,9 @@ import kotlinx.serialization.Serializable * [https://en.wikipedia.org/wiki/ISO_8601#Years](https://en.wikipedia.org/wiki/ISO_8601#Years) for * more details. * @property month The month. The valid range is between 1 and 12, inclusive; however, this is _not_ - * checked or prevented by this class. + * checked or enforced by this class. * @property day The day of the month. The valid range is between 1 and 31, inclusive; however, this - * is _not_ checked or prevented by this class. + * is _not_ checked or enforced by this class. */ @Serializable(with = LocalDateSerializer::class) public class LocalDate(public val year: Int, public val month: Int, public val day: Int) { From d0840cfc9fa5afe7b1a19c41c8b74f5ec09c0bae Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 17:04:42 -0400 Subject: [PATCH 21/22] OptionalVariable.kt: kdoc: fix punctuation in class-level comment: ", and" -> ";" --- .../com/google/firebase/dataconnect/OptionalVariable.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OptionalVariable.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OptionalVariable.kt index 7662fa91acb..6a7f4b3c92d 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OptionalVariable.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/OptionalVariable.kt @@ -145,8 +145,8 @@ public sealed interface OptionalVariable { /** * The [KSerializer] implementation for [OptionalVariable]. * - * Note that this serializer _only_ supports [serialize], and [deserialize] unconditionally throws - * an exception. + * Note that this serializer _only_ supports [serialize]; [deserialize] unconditionally throws an + * exception. * * @param elementSerializer The [KSerializer] to use to serialize the encapsulated value. */ From 86dde17918bac7d347f14d20730ee554dd457db8 Mon Sep 17 00:00:00 2001 From: Denver Coneybeare Date: Fri, 19 Sep 2025 17:05:23 -0400 Subject: [PATCH 22/22] GeneratedConnector.kt: kdoc: make mention of "in an unspecified order" consistent with other methods that have the same text. --- .../firebase/dataconnect/generated/GeneratedConnector.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt index 0dfe8fe351b..c7bc5c578f5 100644 --- a/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt +++ b/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/generated/GeneratedConnector.kt @@ -53,10 +53,10 @@ public interface GeneratedConnector> { /** * Returns a list containing all [GeneratedQuery] and [GeneratedMutation] objects defined as - * properties in this object. + * properties in this object, in an unspecified order.. * * Namely, the returned list will contain exactly the elements returned from [queries] and - * [mutations], in an unspecified order. + * [mutations]. * * @see queries * @see mutations