google-cloud-firestore-v1 0.7.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +1 -1
- data/README.md +1 -1
- data/lib/google/cloud/firestore/v1/firestore/client.rb +226 -58
- data/lib/google/cloud/firestore/v1/firestore.rb +3 -3
- data/lib/google/cloud/firestore/v1/version.rb +1 -1
- data/lib/google/cloud/firestore/v1.rb +2 -2
- data/lib/google/firestore/v1/aggregation_result_pb.rb +24 -0
- data/lib/google/firestore/v1/firestore_pb.rb +19 -0
- data/lib/google/firestore/v1/firestore_services_pb.rb +22 -5
- data/lib/google/firestore/v1/query_pb.rb +20 -0
- data/proto_docs/google/api/client.rb +318 -0
- data/proto_docs/google/api/launch_stage.rb +71 -0
- data/proto_docs/google/firestore/v1/aggregation_result.rb +53 -0
- data/proto_docs/google/firestore/v1/common.rb +5 -3
- data/proto_docs/google/firestore/v1/firestore.rb +142 -42
- data/proto_docs/google/firestore/v1/query.rb +153 -7
- data/proto_docs/google/firestore/v1/write.rb +27 -18
- data/proto_docs/google/protobuf/duration.rb +98 -0
- data/proto_docs/google/rpc/status.rb +4 -2
- metadata +32 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fcbf0267a51ef3d6aa2bd915dc9395feb479bf10be6d246173ee43bb34d5bfe
|
4
|
+
data.tar.gz: e4c4e23ff5f4e666a3e0d06c8caa05fec89889b42eae60378ff774f89726ab10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9a71c321fa41feb3f871f84843f1bdd4eea7a3a1021351a1610982f8ceac8953ef9cd4b70f4ff9413d7f8c1131cb3456e06e4316b45ee0e2bc4014f6c2b9ce4
|
7
|
+
data.tar.gz: 6c12cdf0bfda03c2bfa980a0a74d41753b427d5dbd8e5357ea7f2c3d6a4edc1c068163b084c50997a13a2ba13dce82d497e6fc7958e90be3099a1bec440d3e35
|
data/AUTHENTICATION.md
CHANGED
@@ -114,7 +114,7 @@ credentials are discovered.
|
|
114
114
|
To configure your system for this, simply:
|
115
115
|
|
116
116
|
1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
|
117
|
-
2. Authenticate using OAuth 2.0 `$ gcloud auth login`
|
117
|
+
2. Authenticate using OAuth 2.0 `$ gcloud auth application-default login`
|
118
118
|
3. Write code as if already authenticated.
|
119
119
|
|
120
120
|
**NOTE:** This is _not_ recommended for running in production. The Cloud SDK
|
data/README.md
CHANGED
@@ -46,7 +46,7 @@ for general usage information.
|
|
46
46
|
## Enabling Logging
|
47
47
|
|
48
48
|
To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
|
49
|
-
The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/
|
49
|
+
The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/current/stdlibs/logger/Logger.html) as shown below,
|
50
50
|
or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
|
51
51
|
that will write logs to [Cloud Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
|
52
52
|
and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
|
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
require "google/cloud/errors"
|
20
20
|
require "google/firestore/v1/firestore_pb"
|
21
|
+
require "google/cloud/location"
|
21
22
|
|
22
23
|
module Google
|
23
24
|
module Cloud
|
@@ -33,8 +34,8 @@ module Google
|
|
33
34
|
# document database that simplifies storing, syncing, and querying data for
|
34
35
|
# your mobile, web, and IoT apps at global scale. Its client libraries provide
|
35
36
|
# live synchronization and offline support, while its security features and
|
36
|
-
# integrations with Firebase and Google Cloud Platform
|
37
|
-
#
|
37
|
+
# integrations with Firebase and Google Cloud Platform accelerate building
|
38
|
+
# truly serverless apps.
|
38
39
|
#
|
39
40
|
class Client
|
40
41
|
# @private
|
@@ -114,6 +115,11 @@ module Google
|
|
114
115
|
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
|
115
116
|
}
|
116
117
|
|
118
|
+
default_config.rpcs.run_aggregation_query.timeout = 300.0
|
119
|
+
default_config.rpcs.run_aggregation_query.retry_policy = {
|
120
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
|
121
|
+
}
|
122
|
+
|
117
123
|
default_config.rpcs.partition_query.timeout = 300.0
|
118
124
|
default_config.rpcs.partition_query.retry_policy = {
|
119
125
|
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
|
@@ -210,6 +216,12 @@ module Google
|
|
210
216
|
@quota_project_id = @config.quota_project
|
211
217
|
@quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
|
212
218
|
|
219
|
+
@location_client = Google::Cloud::Location::Locations::Client.new do |config|
|
220
|
+
config.credentials = credentials
|
221
|
+
config.quota_project = @quota_project_id
|
222
|
+
config.endpoint = @config.endpoint
|
223
|
+
end
|
224
|
+
|
213
225
|
@firestore_stub = ::Gapic::ServiceStub.new(
|
214
226
|
::Google::Cloud::Firestore::V1::Firestore::Stub,
|
215
227
|
credentials: credentials,
|
@@ -219,6 +231,13 @@ module Google
|
|
219
231
|
)
|
220
232
|
end
|
221
233
|
|
234
|
+
##
|
235
|
+
# Get the associated client for mix-in of the Locations.
|
236
|
+
#
|
237
|
+
# @return [Google::Cloud::Location::Locations::Client]
|
238
|
+
#
|
239
|
+
attr_reader :location_client
|
240
|
+
|
222
241
|
# Service calls
|
223
242
|
|
224
243
|
##
|
@@ -339,36 +358,56 @@ module Google
|
|
339
358
|
# Required. The parent resource name. In the format:
|
340
359
|
# `projects/{project_id}/databases/{database_id}/documents` or
|
341
360
|
# `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
361
|
+
#
|
342
362
|
# For example:
|
343
363
|
# `projects/my-project/databases/my-database/documents` or
|
344
364
|
# `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
345
365
|
# @param collection_id [::String]
|
346
|
-
#
|
347
|
-
#
|
366
|
+
# Optional. The collection ID, relative to `parent`, to list.
|
367
|
+
#
|
368
|
+
# For example: `chatrooms` or `messages`.
|
369
|
+
#
|
370
|
+
# This is optional, and when not provided, Firestore will list documents
|
371
|
+
# from all collections under the provided `parent`.
|
348
372
|
# @param page_size [::Integer]
|
349
|
-
# The maximum number of documents to return.
|
373
|
+
# Optional. The maximum number of documents to return in a single response.
|
374
|
+
#
|
375
|
+
# Firestore may return fewer than this value.
|
350
376
|
# @param page_token [::String]
|
351
|
-
#
|
377
|
+
# Optional. A page token, received from a previous `ListDocuments` response.
|
378
|
+
#
|
379
|
+
# Provide this to retrieve the subsequent page. When paginating, all other
|
380
|
+
# parameters (with the exception of `page_size`) must match the values set
|
381
|
+
# in the request that generated the page token.
|
352
382
|
# @param order_by [::String]
|
353
|
-
# The
|
383
|
+
# Optional. The optional ordering of the documents to return.
|
384
|
+
#
|
385
|
+
# For example: `priority desc, __name__ desc`.
|
386
|
+
#
|
387
|
+
# This mirrors the {::Google::Cloud::Firestore::V1::StructuredQuery#order_by `ORDER BY`}
|
388
|
+
# used in Firestore queries but in a string representation. When absent,
|
389
|
+
# documents are ordered based on `__name__ ASC`.
|
354
390
|
# @param mask [::Google::Cloud::Firestore::V1::DocumentMask, ::Hash]
|
355
|
-
# The fields to return. If not set, returns all fields.
|
391
|
+
# Optional. The fields to return. If not set, returns all fields.
|
356
392
|
#
|
357
393
|
# If a document has a field that is not present in this mask, that field
|
358
394
|
# will not be returned in the response.
|
359
395
|
# @param transaction [::String]
|
360
|
-
#
|
396
|
+
# Perform the read as part of an already active transaction.
|
361
397
|
# @param read_time [::Google::Protobuf::Timestamp, ::Hash]
|
362
|
-
#
|
398
|
+
# Perform the read at the provided time.
|
399
|
+
#
|
363
400
|
# This may not be older than 270 seconds.
|
364
401
|
# @param show_missing [::Boolean]
|
365
|
-
# If the list should show missing documents.
|
366
|
-
#
|
367
|
-
#
|
368
|
-
#
|
402
|
+
# If the list should show missing documents.
|
403
|
+
#
|
404
|
+
# A document is missing if it does not exist, but there are sub-documents
|
405
|
+
# nested underneath it. When true, such missing documents will be returned
|
406
|
+
# with a key but will not have fields,
|
407
|
+
# {::Google::Cloud::Firestore::V1::Document#create_time `create_time`}, or
|
408
|
+
# {::Google::Cloud::Firestore::V1::Document#update_time `update_time`} set.
|
369
409
|
#
|
370
|
-
# Requests with `show_missing` may not specify `where` or
|
371
|
-
# `order_by`.
|
410
|
+
# Requests with `show_missing` may not specify `where` or `order_by`.
|
372
411
|
#
|
373
412
|
# @yield [response, operation] Access the result along with the RPC operation
|
374
413
|
# @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Firestore::V1::Document>]
|
@@ -390,13 +429,11 @@ module Google
|
|
390
429
|
# # Call the list_documents method.
|
391
430
|
# result = client.list_documents request
|
392
431
|
#
|
393
|
-
# # The returned object is of type Gapic::PagedEnumerable. You can
|
394
|
-
# #
|
395
|
-
#
|
396
|
-
# # methods are also available for managing paging directly.
|
397
|
-
# result.each do |response|
|
432
|
+
# # The returned object is of type Gapic::PagedEnumerable. You can iterate
|
433
|
+
# # over elements, and API calls will be issued to fetch pages as needed.
|
434
|
+
# result.each do |item|
|
398
435
|
# # Each element is of type ::Google::Cloud::Firestore::V1::Document.
|
399
|
-
# p
|
436
|
+
# p item
|
400
437
|
# end
|
401
438
|
#
|
402
439
|
def list_documents request, options = nil
|
@@ -697,13 +734,13 @@ module Google
|
|
697
734
|
# # Create a request. To set request fields, pass in keyword arguments.
|
698
735
|
# request = Google::Cloud::Firestore::V1::BatchGetDocumentsRequest.new
|
699
736
|
#
|
700
|
-
# # Call the batch_get_documents method.
|
701
|
-
#
|
737
|
+
# # Call the batch_get_documents method to start streaming.
|
738
|
+
# output = client.batch_get_documents request
|
702
739
|
#
|
703
|
-
# # The returned object is a streamed enumerable yielding elements of
|
704
|
-
# #
|
705
|
-
#
|
706
|
-
# p
|
740
|
+
# # The returned object is a streamed enumerable yielding elements of type
|
741
|
+
# # ::Google::Cloud::Firestore::V1::BatchGetDocumentsResponse
|
742
|
+
# output.each do |current_response|
|
743
|
+
# p current_response
|
707
744
|
# end
|
708
745
|
#
|
709
746
|
def batch_get_documents request, options = nil
|
@@ -1073,13 +1110,13 @@ module Google
|
|
1073
1110
|
# # Create a request. To set request fields, pass in keyword arguments.
|
1074
1111
|
# request = Google::Cloud::Firestore::V1::RunQueryRequest.new
|
1075
1112
|
#
|
1076
|
-
# # Call the run_query method.
|
1077
|
-
#
|
1113
|
+
# # Call the run_query method to start streaming.
|
1114
|
+
# output = client.run_query request
|
1078
1115
|
#
|
1079
|
-
# # The returned object is a streamed enumerable yielding elements of
|
1080
|
-
# #
|
1081
|
-
#
|
1082
|
-
# p
|
1116
|
+
# # The returned object is a streamed enumerable yielding elements of type
|
1117
|
+
# # ::Google::Cloud::Firestore::V1::RunQueryResponse
|
1118
|
+
# output.each do |current_response|
|
1119
|
+
# p current_response
|
1083
1120
|
# end
|
1084
1121
|
#
|
1085
1122
|
def run_query request, options = nil
|
@@ -1123,6 +1160,128 @@ module Google
|
|
1123
1160
|
raise ::Google::Cloud::Error.from_error(e)
|
1124
1161
|
end
|
1125
1162
|
|
1163
|
+
##
|
1164
|
+
# Runs an aggregation query.
|
1165
|
+
#
|
1166
|
+
# Rather than producing {::Google::Cloud::Firestore::V1::Document Document} results like
|
1167
|
+
# {::Google::Cloud::Firestore::V1::Firestore::Client#run_query Firestore.RunQuery}, this API
|
1168
|
+
# allows running an aggregation to produce a series of
|
1169
|
+
# {::Google::Cloud::Firestore::V1::AggregationResult AggregationResult} server-side.
|
1170
|
+
#
|
1171
|
+
# High-Level Example:
|
1172
|
+
#
|
1173
|
+
# ```
|
1174
|
+
# -- Return the number of documents in table given a filter.
|
1175
|
+
# SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
|
1176
|
+
# ```
|
1177
|
+
#
|
1178
|
+
# @overload run_aggregation_query(request, options = nil)
|
1179
|
+
# Pass arguments to `run_aggregation_query` via a request object, either of type
|
1180
|
+
# {::Google::Cloud::Firestore::V1::RunAggregationQueryRequest} or an equivalent Hash.
|
1181
|
+
#
|
1182
|
+
# @param request [::Google::Cloud::Firestore::V1::RunAggregationQueryRequest, ::Hash]
|
1183
|
+
# A request object representing the call parameters. Required. To specify no
|
1184
|
+
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
1185
|
+
# @param options [::Gapic::CallOptions, ::Hash]
|
1186
|
+
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
1187
|
+
#
|
1188
|
+
# @overload run_aggregation_query(parent: nil, structured_aggregation_query: nil, transaction: nil, new_transaction: nil, read_time: nil)
|
1189
|
+
# Pass arguments to `run_aggregation_query` via keyword arguments. Note that at
|
1190
|
+
# least one keyword argument is required. To specify no parameters, or to keep all
|
1191
|
+
# the default parameter values, pass an empty Hash as a request object (see above).
|
1192
|
+
#
|
1193
|
+
# @param parent [::String]
|
1194
|
+
# Required. The parent resource name. In the format:
|
1195
|
+
# `projects/{project_id}/databases/{database_id}/documents` or
|
1196
|
+
# `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
1197
|
+
# For example:
|
1198
|
+
# `projects/my-project/databases/my-database/documents` or
|
1199
|
+
# `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
1200
|
+
# @param structured_aggregation_query [::Google::Cloud::Firestore::V1::StructuredAggregationQuery, ::Hash]
|
1201
|
+
# An aggregation query.
|
1202
|
+
# @param transaction [::String]
|
1203
|
+
# Run the aggregation within an already active transaction.
|
1204
|
+
#
|
1205
|
+
# The value here is the opaque transaction ID to execute the query in.
|
1206
|
+
# @param new_transaction [::Google::Cloud::Firestore::V1::TransactionOptions, ::Hash]
|
1207
|
+
# Starts a new transaction as part of the query, defaulting to read-only.
|
1208
|
+
#
|
1209
|
+
# The new transaction ID will be returned as the first response in the
|
1210
|
+
# stream.
|
1211
|
+
# @param read_time [::Google::Protobuf::Timestamp, ::Hash]
|
1212
|
+
# Executes the query at the given timestamp.
|
1213
|
+
#
|
1214
|
+
# Requires:
|
1215
|
+
#
|
1216
|
+
# * Cannot be more than 270 seconds in the past.
|
1217
|
+
#
|
1218
|
+
# @yield [response, operation] Access the result along with the RPC operation
|
1219
|
+
# @yieldparam response [::Enumerable<::Google::Cloud::Firestore::V1::RunAggregationQueryResponse>]
|
1220
|
+
# @yieldparam operation [::GRPC::ActiveCall::Operation]
|
1221
|
+
#
|
1222
|
+
# @return [::Enumerable<::Google::Cloud::Firestore::V1::RunAggregationQueryResponse>]
|
1223
|
+
#
|
1224
|
+
# @raise [::Google::Cloud::Error] if the RPC is aborted.
|
1225
|
+
#
|
1226
|
+
# @example Basic example
|
1227
|
+
# require "google/cloud/firestore/v1"
|
1228
|
+
#
|
1229
|
+
# # Create a client object. The client can be reused for multiple calls.
|
1230
|
+
# client = Google::Cloud::Firestore::V1::Firestore::Client.new
|
1231
|
+
#
|
1232
|
+
# # Create a request. To set request fields, pass in keyword arguments.
|
1233
|
+
# request = Google::Cloud::Firestore::V1::RunAggregationQueryRequest.new
|
1234
|
+
#
|
1235
|
+
# # Call the run_aggregation_query method to start streaming.
|
1236
|
+
# output = client.run_aggregation_query request
|
1237
|
+
#
|
1238
|
+
# # The returned object is a streamed enumerable yielding elements of type
|
1239
|
+
# # ::Google::Cloud::Firestore::V1::RunAggregationQueryResponse
|
1240
|
+
# output.each do |current_response|
|
1241
|
+
# p current_response
|
1242
|
+
# end
|
1243
|
+
#
|
1244
|
+
def run_aggregation_query request, options = nil
|
1245
|
+
raise ::ArgumentError, "request must be provided" if request.nil?
|
1246
|
+
|
1247
|
+
request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::V1::RunAggregationQueryRequest
|
1248
|
+
|
1249
|
+
# Converts hash and nil to an options object
|
1250
|
+
options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
1251
|
+
|
1252
|
+
# Customize the options with defaults
|
1253
|
+
metadata = @config.rpcs.run_aggregation_query.metadata.to_h
|
1254
|
+
|
1255
|
+
# Set x-goog-api-client and x-goog-user-project headers
|
1256
|
+
metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
1257
|
+
lib_name: @config.lib_name, lib_version: @config.lib_version,
|
1258
|
+
gapic_version: ::Google::Cloud::Firestore::V1::VERSION
|
1259
|
+
metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
1260
|
+
|
1261
|
+
header_params = {}
|
1262
|
+
if request.parent
|
1263
|
+
header_params["parent"] = request.parent
|
1264
|
+
end
|
1265
|
+
|
1266
|
+
request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
1267
|
+
metadata[:"x-goog-request-params"] ||= request_params_header
|
1268
|
+
|
1269
|
+
options.apply_defaults timeout: @config.rpcs.run_aggregation_query.timeout,
|
1270
|
+
metadata: metadata,
|
1271
|
+
retry_policy: @config.rpcs.run_aggregation_query.retry_policy
|
1272
|
+
|
1273
|
+
options.apply_defaults timeout: @config.timeout,
|
1274
|
+
metadata: @config.metadata,
|
1275
|
+
retry_policy: @config.retry_policy
|
1276
|
+
|
1277
|
+
@firestore_stub.call_rpc :run_aggregation_query, request, options: options do |response, operation|
|
1278
|
+
yield response, operation if block_given?
|
1279
|
+
return response
|
1280
|
+
end
|
1281
|
+
rescue ::GRPC::BadStatus => e
|
1282
|
+
raise ::Google::Cloud::Error.from_error(e)
|
1283
|
+
end
|
1284
|
+
|
1126
1285
|
##
|
1127
1286
|
# Partitions a query by returning partition cursors that can be used to run
|
1128
1287
|
# the query in parallel. The returned partition cursors are split points that
|
@@ -1208,13 +1367,11 @@ module Google
|
|
1208
1367
|
# # Call the partition_query method.
|
1209
1368
|
# result = client.partition_query request
|
1210
1369
|
#
|
1211
|
-
# # The returned object is of type Gapic::PagedEnumerable. You can
|
1212
|
-
# #
|
1213
|
-
#
|
1214
|
-
# # methods are also available for managing paging directly.
|
1215
|
-
# result.each do |response|
|
1370
|
+
# # The returned object is of type Gapic::PagedEnumerable. You can iterate
|
1371
|
+
# # over elements, and API calls will be issued to fetch pages as needed.
|
1372
|
+
# result.each do |item|
|
1216
1373
|
# # Each element is of type ::Google::Cloud::Firestore::V1::Cursor.
|
1217
|
-
# p
|
1374
|
+
# p item
|
1218
1375
|
# end
|
1219
1376
|
#
|
1220
1377
|
def partition_query request, options = nil
|
@@ -1260,7 +1417,8 @@ module Google
|
|
1260
1417
|
end
|
1261
1418
|
|
1262
1419
|
##
|
1263
|
-
# Streams batches of document updates and deletes, in order.
|
1420
|
+
# Streams batches of document updates and deletes, in order. This method is
|
1421
|
+
# only available via the gRPC API (not REST).
|
1264
1422
|
#
|
1265
1423
|
# @param request [::Gapic::StreamInput, ::Enumerable<::Google::Cloud::Firestore::V1::WriteRequest, ::Hash>]
|
1266
1424
|
# An enumerable of {::Google::Cloud::Firestore::V1::WriteRequest} instances.
|
@@ -1281,22 +1439,22 @@ module Google
|
|
1281
1439
|
# # Create a client object. The client can be reused for multiple calls.
|
1282
1440
|
# client = Google::Cloud::Firestore::V1::Firestore::Client.new
|
1283
1441
|
#
|
1284
|
-
# # Create an input stream
|
1442
|
+
# # Create an input stream.
|
1285
1443
|
# input = Gapic::StreamInput.new
|
1286
1444
|
#
|
1287
1445
|
# # Call the write method to start streaming.
|
1288
1446
|
# output = client.write input
|
1289
1447
|
#
|
1290
|
-
# # Send requests on the stream. For each request,
|
1291
|
-
# #
|
1448
|
+
# # Send requests on the stream. For each request object, set fields by
|
1449
|
+
# # passing keyword arguments. Be sure to close the stream when done.
|
1292
1450
|
# input << Google::Cloud::Firestore::V1::WriteRequest.new
|
1293
1451
|
# input << Google::Cloud::Firestore::V1::WriteRequest.new
|
1294
1452
|
# input.close
|
1295
1453
|
#
|
1296
|
-
# #
|
1297
|
-
# #
|
1298
|
-
# output.each do |
|
1299
|
-
# p
|
1454
|
+
# # The returned object is a streamed enumerable yielding elements of type
|
1455
|
+
# # ::Google::Cloud::Firestore::V1::WriteResponse
|
1456
|
+
# output.each do |current_response|
|
1457
|
+
# p current_response
|
1300
1458
|
# end
|
1301
1459
|
#
|
1302
1460
|
def write request, options = nil
|
@@ -1338,7 +1496,8 @@ module Google
|
|
1338
1496
|
end
|
1339
1497
|
|
1340
1498
|
##
|
1341
|
-
# Listens to changes.
|
1499
|
+
# Listens to changes. This method is only available via the gRPC API (not
|
1500
|
+
# REST).
|
1342
1501
|
#
|
1343
1502
|
# @param request [::Gapic::StreamInput, ::Enumerable<::Google::Cloud::Firestore::V1::ListenRequest, ::Hash>]
|
1344
1503
|
# An enumerable of {::Google::Cloud::Firestore::V1::ListenRequest} instances.
|
@@ -1359,22 +1518,22 @@ module Google
|
|
1359
1518
|
# # Create a client object. The client can be reused for multiple calls.
|
1360
1519
|
# client = Google::Cloud::Firestore::V1::Firestore::Client.new
|
1361
1520
|
#
|
1362
|
-
# # Create an input stream
|
1521
|
+
# # Create an input stream.
|
1363
1522
|
# input = Gapic::StreamInput.new
|
1364
1523
|
#
|
1365
1524
|
# # Call the listen method to start streaming.
|
1366
1525
|
# output = client.listen input
|
1367
1526
|
#
|
1368
|
-
# # Send requests on the stream. For each request,
|
1369
|
-
# #
|
1527
|
+
# # Send requests on the stream. For each request object, set fields by
|
1528
|
+
# # passing keyword arguments. Be sure to close the stream when done.
|
1370
1529
|
# input << Google::Cloud::Firestore::V1::ListenRequest.new
|
1371
1530
|
# input << Google::Cloud::Firestore::V1::ListenRequest.new
|
1372
1531
|
# input.close
|
1373
1532
|
#
|
1374
|
-
# #
|
1375
|
-
# #
|
1376
|
-
# output.each do |
|
1377
|
-
# p
|
1533
|
+
# # The returned object is a streamed enumerable yielding elements of type
|
1534
|
+
# # ::Google::Cloud::Firestore::V1::ListenResponse
|
1535
|
+
# output.each do |current_response|
|
1536
|
+
# p current_response
|
1378
1537
|
# end
|
1379
1538
|
#
|
1380
1539
|
def listen request, options = nil
|
@@ -1517,7 +1676,8 @@ module Google
|
|
1517
1676
|
# The BatchWrite method does not apply the write operations atomically
|
1518
1677
|
# and can apply them out of order. Method does not allow more than one write
|
1519
1678
|
# per document. Each write succeeds or fails independently. See the
|
1520
|
-
# {::Google::Cloud::Firestore::V1::BatchWriteResponse BatchWriteResponse} for the
|
1679
|
+
# {::Google::Cloud::Firestore::V1::BatchWriteResponse BatchWriteResponse} for the
|
1680
|
+
# success status of each write.
|
1521
1681
|
#
|
1522
1682
|
# If you require an atomically applied set of writes, use
|
1523
1683
|
# {::Google::Cloud::Firestore::V1::Firestore::Client#commit Commit} instead.
|
@@ -1636,7 +1796,8 @@ module Google
|
|
1636
1796
|
# `projects/{project_id}/databases/{database_id}/documents` or
|
1637
1797
|
# `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
|
1638
1798
|
# @param collection_id [::String]
|
1639
|
-
# Required. The collection ID, relative to `parent`, to list. For example:
|
1799
|
+
# Required. The collection ID, relative to `parent`, to list. For example:
|
1800
|
+
# `chatrooms`.
|
1640
1801
|
# @param document_id [::String]
|
1641
1802
|
# The client-assigned document ID to use for this document.
|
1642
1803
|
#
|
@@ -1897,6 +2058,11 @@ module Google
|
|
1897
2058
|
#
|
1898
2059
|
attr_reader :run_query
|
1899
2060
|
##
|
2061
|
+
# RPC-specific configuration for `run_aggregation_query`
|
2062
|
+
# @return [::Gapic::Config::Method]
|
2063
|
+
#
|
2064
|
+
attr_reader :run_aggregation_query
|
2065
|
+
##
|
1900
2066
|
# RPC-specific configuration for `partition_query`
|
1901
2067
|
# @return [::Gapic::Config::Method]
|
1902
2068
|
#
|
@@ -1947,6 +2113,8 @@ module Google
|
|
1947
2113
|
@rollback = ::Gapic::Config::Method.new rollback_config
|
1948
2114
|
run_query_config = parent_rpcs.run_query if parent_rpcs.respond_to? :run_query
|
1949
2115
|
@run_query = ::Gapic::Config::Method.new run_query_config
|
2116
|
+
run_aggregation_query_config = parent_rpcs.run_aggregation_query if parent_rpcs.respond_to? :run_aggregation_query
|
2117
|
+
@run_aggregation_query = ::Gapic::Config::Method.new run_aggregation_query_config
|
1950
2118
|
partition_query_config = parent_rpcs.partition_query if parent_rpcs.respond_to? :partition_query
|
1951
2119
|
@partition_query = ::Gapic::Config::Method.new partition_query_config
|
1952
2120
|
write_config = parent_rpcs.write if parent_rpcs.respond_to? :write
|
@@ -36,10 +36,10 @@ module Google
|
|
36
36
|
# document database that simplifies storing, syncing, and querying data for
|
37
37
|
# your mobile, web, and IoT apps at global scale. Its client libraries provide
|
38
38
|
# live synchronization and offline support, while its security features and
|
39
|
-
# integrations with Firebase and Google Cloud Platform
|
40
|
-
#
|
39
|
+
# integrations with Firebase and Google Cloud Platform accelerate building
|
40
|
+
# truly serverless apps.
|
41
41
|
#
|
42
|
-
#
|
42
|
+
# @example Load this service and instantiate a gRPC client
|
43
43
|
#
|
44
44
|
# require "google/cloud/firestore/v1/firestore"
|
45
45
|
# client = ::Google::Cloud::Firestore::V1::Firestore::Client.new
|
@@ -23,9 +23,9 @@ module Google
|
|
23
23
|
module Cloud
|
24
24
|
module Firestore
|
25
25
|
##
|
26
|
-
#
|
26
|
+
# API client module.
|
27
27
|
#
|
28
|
-
# @example
|
28
|
+
# @example Load this package, including all its services, and instantiate a gRPC client
|
29
29
|
#
|
30
30
|
# require "google/cloud/firestore/v1"
|
31
31
|
# client = ::Google::Cloud::Firestore::V1::Firestore::Client.new
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: google/firestore/v1/aggregation_result.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'google/firestore/v1/document_pb'
|
7
|
+
|
8
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
9
|
+
add_file("google/firestore/v1/aggregation_result.proto", :syntax => :proto3) do
|
10
|
+
add_message "google.firestore.v1.AggregationResult" do
|
11
|
+
map :aggregate_fields, :string, :message, 2, "google.firestore.v1.Value"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module Google
|
17
|
+
module Cloud
|
18
|
+
module Firestore
|
19
|
+
module V1
|
20
|
+
AggregationResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.AggregationResult").msgclass
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -6,6 +6,7 @@ require 'google/protobuf'
|
|
6
6
|
require 'google/api/annotations_pb'
|
7
7
|
require 'google/api/client_pb'
|
8
8
|
require 'google/api/field_behavior_pb'
|
9
|
+
require 'google/firestore/v1/aggregation_result_pb'
|
9
10
|
require 'google/firestore/v1/common_pb'
|
10
11
|
require 'google/firestore/v1/document_pb'
|
11
12
|
require 'google/firestore/v1/query_pb'
|
@@ -116,6 +117,22 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
116
117
|
optional :done, :bool, 6
|
117
118
|
end
|
118
119
|
end
|
120
|
+
add_message "google.firestore.v1.RunAggregationQueryRequest" do
|
121
|
+
optional :parent, :string, 1
|
122
|
+
oneof :query_type do
|
123
|
+
optional :structured_aggregation_query, :message, 2, "google.firestore.v1.StructuredAggregationQuery"
|
124
|
+
end
|
125
|
+
oneof :consistency_selector do
|
126
|
+
optional :transaction, :bytes, 4
|
127
|
+
optional :new_transaction, :message, 5, "google.firestore.v1.TransactionOptions"
|
128
|
+
optional :read_time, :message, 6, "google.protobuf.Timestamp"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
add_message "google.firestore.v1.RunAggregationQueryResponse" do
|
132
|
+
optional :result, :message, 1, "google.firestore.v1.AggregationResult"
|
133
|
+
optional :transaction, :bytes, 2
|
134
|
+
optional :read_time, :message, 3, "google.protobuf.Timestamp"
|
135
|
+
end
|
119
136
|
add_message "google.firestore.v1.PartitionQueryRequest" do
|
120
137
|
optional :parent, :string, 1
|
121
138
|
optional :partition_count, :int64, 3
|
@@ -240,6 +257,8 @@ module Google
|
|
240
257
|
RollbackRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RollbackRequest").msgclass
|
241
258
|
RunQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunQueryRequest").msgclass
|
242
259
|
RunQueryResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunQueryResponse").msgclass
|
260
|
+
RunAggregationQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunAggregationQueryRequest").msgclass
|
261
|
+
RunAggregationQueryResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunAggregationQueryResponse").msgclass
|
243
262
|
PartitionQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.PartitionQueryRequest").msgclass
|
244
263
|
PartitionQueryResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.PartitionQueryResponse").msgclass
|
245
264
|
WriteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.WriteRequest").msgclass
|
@@ -32,8 +32,8 @@ module Google
|
|
32
32
|
# document database that simplifies storing, syncing, and querying data for
|
33
33
|
# your mobile, web, and IoT apps at global scale. Its client libraries provide
|
34
34
|
# live synchronization and offline support, while its security features and
|
35
|
-
# integrations with Firebase and Google Cloud Platform
|
36
|
-
#
|
35
|
+
# integrations with Firebase and Google Cloud Platform accelerate building
|
36
|
+
# truly serverless apps.
|
37
37
|
class Service
|
38
38
|
|
39
39
|
include ::GRPC::GenericService
|
@@ -63,13 +63,29 @@ module Google
|
|
63
63
|
rpc :Rollback, ::Google::Cloud::Firestore::V1::RollbackRequest, ::Google::Protobuf::Empty
|
64
64
|
# Runs a query.
|
65
65
|
rpc :RunQuery, ::Google::Cloud::Firestore::V1::RunQueryRequest, stream(::Google::Cloud::Firestore::V1::RunQueryResponse)
|
66
|
+
# Runs an aggregation query.
|
67
|
+
#
|
68
|
+
# Rather than producing [Document][google.firestore.v1.Document] results like
|
69
|
+
# [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery], this API
|
70
|
+
# allows running an aggregation to produce a series of
|
71
|
+
# [AggregationResult][google.firestore.v1.AggregationResult] server-side.
|
72
|
+
#
|
73
|
+
# High-Level Example:
|
74
|
+
#
|
75
|
+
# ```
|
76
|
+
# -- Return the number of documents in table given a filter.
|
77
|
+
# SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
|
78
|
+
# ```
|
79
|
+
rpc :RunAggregationQuery, ::Google::Cloud::Firestore::V1::RunAggregationQueryRequest, stream(::Google::Cloud::Firestore::V1::RunAggregationQueryResponse)
|
66
80
|
# Partitions a query by returning partition cursors that can be used to run
|
67
81
|
# the query in parallel. The returned partition cursors are split points that
|
68
82
|
# can be used by RunQuery as starting/end points for the query results.
|
69
83
|
rpc :PartitionQuery, ::Google::Cloud::Firestore::V1::PartitionQueryRequest, ::Google::Cloud::Firestore::V1::PartitionQueryResponse
|
70
|
-
# Streams batches of document updates and deletes, in order.
|
84
|
+
# Streams batches of document updates and deletes, in order. This method is
|
85
|
+
# only available via the gRPC API (not REST).
|
71
86
|
rpc :Write, stream(::Google::Cloud::Firestore::V1::WriteRequest), stream(::Google::Cloud::Firestore::V1::WriteResponse)
|
72
|
-
# Listens to changes.
|
87
|
+
# Listens to changes. This method is only available via the gRPC API (not
|
88
|
+
# REST).
|
73
89
|
rpc :Listen, stream(::Google::Cloud::Firestore::V1::ListenRequest), stream(::Google::Cloud::Firestore::V1::ListenResponse)
|
74
90
|
# Lists all the collection IDs underneath a document.
|
75
91
|
rpc :ListCollectionIds, ::Google::Cloud::Firestore::V1::ListCollectionIdsRequest, ::Google::Cloud::Firestore::V1::ListCollectionIdsResponse
|
@@ -78,7 +94,8 @@ module Google
|
|
78
94
|
# The BatchWrite method does not apply the write operations atomically
|
79
95
|
# and can apply them out of order. Method does not allow more than one write
|
80
96
|
# per document. Each write succeeds or fails independently. See the
|
81
|
-
# [BatchWriteResponse][google.firestore.v1.BatchWriteResponse] for the
|
97
|
+
# [BatchWriteResponse][google.firestore.v1.BatchWriteResponse] for the
|
98
|
+
# success status of each write.
|
82
99
|
#
|
83
100
|
# If you require an atomically applied set of writes, use
|
84
101
|
# [Commit][google.firestore.v1.Firestore.Commit] instead.
|