google-cloud-firestore 0.22.0 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/README.md +8 -8
  4. data/lib/google-cloud-firestore.rb +1 -1
  5. data/lib/google/cloud/firestore.rb +46 -0
  6. data/lib/google/cloud/firestore/batch.rb +1 -1
  7. data/lib/google/cloud/firestore/client.rb +18 -13
  8. data/lib/google/cloud/firestore/convert.rb +78 -35
  9. data/lib/google/cloud/firestore/credentials.rb +2 -12
  10. data/lib/google/cloud/firestore/document_change.rb +124 -0
  11. data/lib/google/cloud/firestore/document_listener.rb +125 -0
  12. data/lib/google/cloud/firestore/document_reference.rb +35 -0
  13. data/lib/google/cloud/firestore/document_snapshot.rb +91 -9
  14. data/lib/google/cloud/firestore/field_path.rb +23 -13
  15. data/lib/google/cloud/firestore/query.rb +513 -69
  16. data/lib/google/cloud/firestore/query_listener.rb +118 -0
  17. data/lib/google/cloud/firestore/query_snapshot.rb +121 -0
  18. data/lib/google/cloud/firestore/service.rb +8 -0
  19. data/lib/google/cloud/firestore/transaction.rb +2 -2
  20. data/lib/google/cloud/firestore/v1beta1.rb +62 -37
  21. data/lib/google/cloud/firestore/v1beta1/credentials.rb +41 -0
  22. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/common.rb +1 -1
  23. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/document.rb +5 -4
  24. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/firestore.rb +1 -12
  25. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/query.rb +4 -1
  26. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/write.rb +37 -8
  27. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/any.rb +1 -1
  28. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/empty.rb +28 -0
  29. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/timestamp.rb +1 -1
  30. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/wrappers.rb +1 -1
  31. data/lib/google/cloud/firestore/v1beta1/doc/google/rpc/status.rb +1 -1
  32. data/lib/google/cloud/firestore/v1beta1/firestore_client.rb +124 -56
  33. data/lib/google/cloud/firestore/v1beta1/firestore_client_config.json +2 -2
  34. data/lib/google/cloud/firestore/version.rb +1 -1
  35. data/lib/google/cloud/firestore/watch/enumerator_queue.rb +47 -0
  36. data/lib/google/cloud/firestore/watch/inventory.rb +280 -0
  37. data/lib/google/cloud/firestore/watch/listener.rb +298 -0
  38. data/lib/google/cloud/firestore/watch/order.rb +98 -0
  39. data/lib/google/firestore/v1beta1/firestore_services_pb.rb +2 -4
  40. data/lib/google/firestore/v1beta1/query_pb.rb +1 -0
  41. data/lib/google/firestore/v1beta1/write_pb.rb +2 -0
  42. metadata +40 -3
  43. data/lib/google/cloud/firestore/v1beta1/doc/overview.rb +0 -53
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -14,17 +14,6 @@
14
14
 
15
15
  module Google
16
16
  module Firestore
17
- ##
18
- # # Google Cloud Firestore API Contents
19
- #
20
- # | Class | Description |
21
- # | ----- | ----------- |
22
- # | [FirestoreClient][] | |
23
- # | [Data Types][] | Data types for Google::Cloud::Firestore::V1beta1 |
24
- #
25
- # [FirestoreClient]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-firestore/latest/google/firestore/v1beta1/v1beta1/firestoreclient
26
- # [Data Types]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-firestore/latest/google/firestore/v1beta1/v1beta1/datatypes
27
- #
28
17
  module V1beta1
29
18
  # The request for {Google::Firestore::V1beta1::Firestore::GetDocument Firestore::GetDocument}.
30
19
  # @!attribute [rw] name
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -138,6 +138,9 @@ module Google
138
138
 
139
139
  # Equal.
140
140
  EQUAL = 5
141
+
142
+ # Contains. Requires that the field is an array.
143
+ ARRAY_CONTAINS = 7
141
144
  end
142
145
  end
143
146
 
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -34,9 +34,10 @@ module Google
34
34
  # The fields to update in this write.
35
35
  #
36
36
  # This field can be set only when the operation is +update+.
37
- # None of the field paths in the mask may contain a reserved name.
38
- # If the document exists on the server and has fields not referenced in the
39
- # mask, they are left unchanged.
37
+ # If the mask is not set for an +update+ and the document exists, any
38
+ # existing data will be overwritten.
39
+ # If the mask is set and the document on the server has fields not covered by
40
+ # the mask, they are left unchanged.
40
41
  # Fields referenced in the mask, but not present in the input document, are
41
42
  # deleted from the document on the server.
42
43
  # The field paths in this mask must not contain a reserved field name.
@@ -55,6 +56,7 @@ module Google
55
56
  # @return [Array<Google::Firestore::V1beta1::DocumentTransform::FieldTransform>]
56
57
  # The list of transformations to apply to the fields of the document, in
57
58
  # order.
59
+ # This must not be empty.
58
60
  class DocumentTransform
59
61
  # A transformation of a field of the document.
60
62
  # @!attribute [rw] field_path
@@ -64,13 +66,40 @@ module Google
64
66
  # @!attribute [rw] set_to_server_value
65
67
  # @return [Google::Firestore::V1beta1::DocumentTransform::FieldTransform::ServerValue]
66
68
  # Sets the field to the given server value.
69
+ # @!attribute [rw] append_missing_elements
70
+ # @return [Google::Firestore::V1beta1::ArrayValue]
71
+ # Append the given elements in order if they are not already present in
72
+ # the current field value.
73
+ # If the field is not an array, or if the field does not yet exist, it is
74
+ # first set to the empty array.
75
+ #
76
+ # Equivalent numbers of different types (e.g. 3L and 3.0) are
77
+ # considered equal when checking if a value is missing.
78
+ # NaN is equal to NaN, and Null is equal to Null.
79
+ # If the input contains multiple equivalent values, only the first will
80
+ # be considered.
81
+ #
82
+ # The corresponding transform_result will be the null value.
83
+ # @!attribute [rw] remove_all_from_array
84
+ # @return [Google::Firestore::V1beta1::ArrayValue]
85
+ # Remove all of the given elements from the array in the field.
86
+ # If the field is not an array, or if the field does not yet exist, it is
87
+ # set to the empty array.
88
+ #
89
+ # Equivalent numbers of the different types (e.g. 3L and 3.0) are
90
+ # considered equal when deciding whether an element should be removed.
91
+ # NaN is equal to NaN, and Null is equal to Null.
92
+ # This will remove all equivalent values if there are duplicates.
93
+ #
94
+ # The corresponding transform_result will be the null value.
67
95
  class FieldTransform
68
96
  # A value that is calculated by the server.
69
97
  module ServerValue
70
98
  # Unspecified. This value must not be used.
71
99
  SERVER_VALUE_UNSPECIFIED = 0
72
100
 
73
- # The time at which the server processed the request.
101
+ # The time at which the server processed the request, with millisecond
102
+ # precision.
74
103
  REQUEST_TIME = 1
75
104
  end
76
105
  end
@@ -92,7 +121,7 @@ module Google
92
121
 
93
122
  # A {Google::Firestore::V1beta1::Document Document} has changed.
94
123
  #
95
- # May be the result of multiple {Google::Firestore::V1beta1::Write Writes}, including deletes, that
124
+ # May be the result of multiple {Google::Firestore::V1beta1::Write writes}, including deletes, that
96
125
  # ultimately resulted in a new value for the {Google::Firestore::V1beta1::Document Document}.
97
126
  #
98
127
  # Multiple {Google::Firestore::V1beta1::DocumentChange DocumentChange} messages may be returned for the same logical
@@ -112,7 +141,7 @@ module Google
112
141
 
113
142
  # A {Google::Firestore::V1beta1::Document Document} has been deleted.
114
143
  #
115
- # May be the result of multiple {Google::Firestore::V1beta1::Write Writes}, including updates, the
144
+ # May be the result of multiple {Google::Firestore::V1beta1::Write writes}, including updates, the
116
145
  # last of which deleted the {Google::Firestore::V1beta1::Document Document}.
117
146
  #
118
147
  # Multiple {Google::Firestore::V1beta1::DocumentDelete DocumentDelete} messages may be returned for the same logical
@@ -157,7 +186,7 @@ module Google
157
186
  # The target ID to which this filter applies.
158
187
  # @!attribute [rw] count
159
188
  # @return [Integer]
160
- # The total count of documents that match {Google::Firestore::V1beta1::ExistenceFilter#target_id Target_id}.
189
+ # The total count of documents that match {Google::Firestore::V1beta1::ExistenceFilter#target_id target_id}.
161
190
  #
162
191
  # If different from the count of documents in the client that match, the
163
192
  # client must manually determine which documents no longer match the target.
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -0,0 +1,28 @@
1
+ # Copyright 2018 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Google
16
+ module Protobuf
17
+ # A generic empty message that you can re-use to avoid defining duplicated
18
+ # empty messages in your APIs. A typical example is to use it as the request
19
+ # or the response type of an API method. For instance:
20
+ #
21
+ # service Foo {
22
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
23
+ # }
24
+ #
25
+ # The JSON representation for +Empty+ is empty JSON object +{}+.
26
+ class Empty; end
27
+ end
28
+ end
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -18,9 +18,6 @@
18
18
  # and updates to that file get reflected here through a refresh process.
19
19
  # For the short term, the refresh process will only be runnable by Google
20
20
  # engineers.
21
- #
22
- # The only allowed edits are to method and file documentation. A 3-way
23
- # merge preserves those additions if the generated source changes.
24
21
 
25
22
  require "json"
26
23
  require "pathname"
@@ -28,7 +25,7 @@ require "pathname"
28
25
  require "google/gax"
29
26
 
30
27
  require "google/firestore/v1beta1/firestore_pb"
31
- require "google/cloud/firestore/credentials"
28
+ require "google/cloud/firestore/v1beta1/credentials"
32
29
 
33
30
  module Google
34
31
  module Cloud
@@ -62,6 +59,9 @@ module Google
62
59
  # The default port of the service.
63
60
  DEFAULT_SERVICE_PORT = 443
64
61
 
62
+ # The default set of gRPC interceptors.
63
+ GRPC_INTERCEPTORS = []
64
+
65
65
  DEFAULT_TIMEOUT = 30
66
66
 
67
67
  PAGE_DESCRIPTORS = {
@@ -84,6 +84,7 @@ module Google
84
84
  "https://www.googleapis.com/auth/datastore"
85
85
  ].freeze
86
86
 
87
+
87
88
  DATABASE_ROOT_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
88
89
  "projects/{project}/databases/{database}"
89
90
  )
@@ -182,16 +183,18 @@ module Google
182
183
  # or the specified config is missing data points.
183
184
  # @param timeout [Numeric]
184
185
  # The default timeout, in seconds, for calls made through this client.
186
+ # @param metadata [Hash]
187
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
188
+ # @param exception_transformer [Proc]
189
+ # An optional proc that intercepts any exceptions raised during an API call to inject
190
+ # custom error handling.
185
191
  def initialize \
186
- service_path: SERVICE_ADDRESS,
187
- port: DEFAULT_SERVICE_PORT,
188
- channel: nil,
189
- chan_creds: nil,
190
- updater_proc: nil,
191
192
  credentials: nil,
192
193
  scopes: ALL_SCOPES,
193
194
  client_config: {},
194
195
  timeout: DEFAULT_TIMEOUT,
196
+ metadata: nil,
197
+ exception_transformer: nil,
195
198
  lib_name: nil,
196
199
  lib_version: ""
197
200
  # These require statements are intentionally placed here to initialize
@@ -200,21 +203,10 @@ module Google
200
203
  require "google/gax/grpc"
201
204
  require "google/firestore/v1beta1/firestore_services_pb"
202
205
 
203
- if channel || chan_creds || updater_proc
204
- warn "The `channel`, `chan_creds`, and `updater_proc` parameters will be removed " \
205
- "on 2017/09/08"
206
- credentials ||= channel
207
- credentials ||= chan_creds
208
- credentials ||= updater_proc
209
- end
210
- if service_path != SERVICE_ADDRESS || port != DEFAULT_SERVICE_PORT
211
- warn "`service_path` and `port` parameters are deprecated and will be removed"
212
- end
213
-
214
- credentials ||= Google::Cloud::Firestore::Credentials.default
206
+ credentials ||= Google::Cloud::Firestore::V1beta1::Credentials.default
215
207
 
216
208
  if credentials.is_a?(String) || credentials.is_a?(Hash)
217
- updater_proc = Google::Cloud::Firestore::Credentials.new(credentials).updater_proc
209
+ updater_proc = Google::Cloud::Firestore::V1beta1::Credentials.new(credentials).updater_proc
218
210
  end
219
211
  if credentials.is_a?(GRPC::Core::Channel)
220
212
  channel = credentials
@@ -229,13 +221,16 @@ module Google
229
221
  updater_proc = credentials.updater_proc
230
222
  end
231
223
 
224
+ package_version = Gem.loaded_specs['google-cloud-firestore'].version.version
225
+
232
226
  google_api_client = "gl-ruby/#{RUBY_VERSION}"
233
227
  google_api_client << " #{lib_name}/#{lib_version}" if lib_name
234
- google_api_client << " gapic/0.6.8 gax/#{Google::Gax::VERSION}"
228
+ google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}"
235
229
  google_api_client << " grpc/#{GRPC::VERSION}"
236
230
  google_api_client.freeze
237
231
 
238
232
  headers = { :"x-goog-api-client" => google_api_client }
233
+ headers.merge!(metadata) unless metadata.nil?
239
234
  client_config_file = Pathname.new(__dir__).join(
240
235
  "firestore_client_config.json"
241
236
  )
@@ -248,9 +243,14 @@ module Google
248
243
  timeout,
249
244
  page_descriptors: PAGE_DESCRIPTORS,
250
245
  errors: Google::Gax::Grpc::API_ERRORS,
251
- kwargs: headers
246
+ metadata: headers
252
247
  )
253
248
  end
249
+
250
+ # Allow overriding the service path/port in subclasses.
251
+ service_path = self.class::SERVICE_ADDRESS
252
+ port = self.class::DEFAULT_SERVICE_PORT
253
+ interceptors = self.class::GRPC_INTERCEPTORS
254
254
  @firestore_stub = Google::Gax::Grpc.create_stub(
255
255
  service_path,
256
256
  port,
@@ -258,60 +258,74 @@ module Google
258
258
  channel: channel,
259
259
  updater_proc: updater_proc,
260
260
  scopes: scopes,
261
+ interceptors: interceptors,
261
262
  &Google::Firestore::V1beta1::Firestore::Stub.method(:new)
262
263
  )
263
264
 
264
265
  @get_document = Google::Gax.create_api_call(
265
266
  @firestore_stub.method(:get_document),
266
- defaults["get_document"]
267
+ defaults["get_document"],
268
+ exception_transformer: exception_transformer
267
269
  )
268
270
  @list_documents = Google::Gax.create_api_call(
269
271
  @firestore_stub.method(:list_documents),
270
- defaults["list_documents"]
272
+ defaults["list_documents"],
273
+ exception_transformer: exception_transformer
271
274
  )
272
275
  @create_document = Google::Gax.create_api_call(
273
276
  @firestore_stub.method(:create_document),
274
- defaults["create_document"]
277
+ defaults["create_document"],
278
+ exception_transformer: exception_transformer
275
279
  )
276
280
  @update_document = Google::Gax.create_api_call(
277
281
  @firestore_stub.method(:update_document),
278
- defaults["update_document"]
282
+ defaults["update_document"],
283
+ exception_transformer: exception_transformer
279
284
  )
280
285
  @delete_document = Google::Gax.create_api_call(
281
286
  @firestore_stub.method(:delete_document),
282
- defaults["delete_document"]
287
+ defaults["delete_document"],
288
+ exception_transformer: exception_transformer
283
289
  )
284
290
  @batch_get_documents = Google::Gax.create_api_call(
285
291
  @firestore_stub.method(:batch_get_documents),
286
- defaults["batch_get_documents"]
292
+ defaults["batch_get_documents"],
293
+ exception_transformer: exception_transformer
287
294
  )
288
295
  @begin_transaction = Google::Gax.create_api_call(
289
296
  @firestore_stub.method(:begin_transaction),
290
- defaults["begin_transaction"]
297
+ defaults["begin_transaction"],
298
+ exception_transformer: exception_transformer
291
299
  )
292
300
  @commit = Google::Gax.create_api_call(
293
301
  @firestore_stub.method(:commit),
294
- defaults["commit"]
302
+ defaults["commit"],
303
+ exception_transformer: exception_transformer
295
304
  )
296
305
  @rollback = Google::Gax.create_api_call(
297
306
  @firestore_stub.method(:rollback),
298
- defaults["rollback"]
307
+ defaults["rollback"],
308
+ exception_transformer: exception_transformer
299
309
  )
300
310
  @run_query = Google::Gax.create_api_call(
301
311
  @firestore_stub.method(:run_query),
302
- defaults["run_query"]
312
+ defaults["run_query"],
313
+ exception_transformer: exception_transformer
303
314
  )
304
315
  @write = Google::Gax.create_api_call(
305
316
  @firestore_stub.method(:write),
306
- defaults["write"]
317
+ defaults["write"],
318
+ exception_transformer: exception_transformer
307
319
  )
308
320
  @listen = Google::Gax.create_api_call(
309
321
  @firestore_stub.method(:listen),
310
- defaults["listen"]
322
+ defaults["listen"],
323
+ exception_transformer: exception_transformer
311
324
  )
312
325
  @list_collection_ids = Google::Gax.create_api_call(
313
326
  @firestore_stub.method(:list_collection_ids),
314
- defaults["list_collection_ids"]
327
+ defaults["list_collection_ids"],
328
+ exception_transformer: exception_transformer
315
329
  )
316
330
  end
317
331
 
@@ -339,6 +353,9 @@ module Google
339
353
  # @param options [Google::Gax::CallOptions]
340
354
  # Overrides the default settings for this call, e.g, timeout,
341
355
  # retries, etc.
356
+ # @yield [result, operation] Access the result along with the RPC operation
357
+ # @yieldparam result [Google::Firestore::V1beta1::Document]
358
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
342
359
  # @return [Google::Firestore::V1beta1::Document]
343
360
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
344
361
  # @example
@@ -353,7 +370,8 @@ module Google
353
370
  mask: nil,
354
371
  transaction: nil,
355
372
  read_time: nil,
356
- options: nil
373
+ options: nil,
374
+ &block
357
375
  req = {
358
376
  name: name,
359
377
  mask: mask,
@@ -361,7 +379,7 @@ module Google
361
379
  read_time: read_time
362
380
  }.delete_if { |_, v| v.nil? }
363
381
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::GetDocumentRequest)
364
- @get_document.call(req, options)
382
+ @get_document.call(req, options, &block)
365
383
  end
366
384
 
367
385
  # Lists documents.
@@ -409,6 +427,9 @@ module Google
409
427
  # @param options [Google::Gax::CallOptions]
410
428
  # Overrides the default settings for this call, e.g, timeout,
411
429
  # retries, etc.
430
+ # @yield [result, operation] Access the result along with the RPC operation
431
+ # @yieldparam result [Google::Gax::PagedEnumerable<Google::Firestore::V1beta1::Document>]
432
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
412
433
  # @return [Google::Gax::PagedEnumerable<Google::Firestore::V1beta1::Document>]
413
434
  # An enumerable of Google::Firestore::V1beta1::Document instances.
414
435
  # See Google::Gax::PagedEnumerable documentation for other
@@ -420,6 +441,8 @@ module Google
420
441
  #
421
442
  # firestore_client = Google::Cloud::Firestore::V1beta1.new
422
443
  # formatted_parent = Google::Cloud::Firestore::V1beta1::FirestoreClient.any_path_path("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]")
444
+ #
445
+ # # TODO: Initialize +collection_id+:
423
446
  # collection_id = ''
424
447
  #
425
448
  # # Iterate over all results.
@@ -444,7 +467,8 @@ module Google
444
467
  transaction: nil,
445
468
  read_time: nil,
446
469
  show_missing: nil,
447
- options: nil
470
+ options: nil,
471
+ &block
448
472
  req = {
449
473
  parent: parent,
450
474
  collection_id: collection_id,
@@ -456,7 +480,7 @@ module Google
456
480
  show_missing: show_missing
457
481
  }.delete_if { |_, v| v.nil? }
458
482
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::ListDocumentsRequest)
459
- @list_documents.call(req, options)
483
+ @list_documents.call(req, options, &block)
460
484
  end
461
485
 
462
486
  # Creates a new document.
@@ -485,6 +509,9 @@ module Google
485
509
  # @param options [Google::Gax::CallOptions]
486
510
  # Overrides the default settings for this call, e.g, timeout,
487
511
  # retries, etc.
512
+ # @yield [result, operation] Access the result along with the RPC operation
513
+ # @yieldparam result [Google::Firestore::V1beta1::Document]
514
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
488
515
  # @return [Google::Firestore::V1beta1::Document]
489
516
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
490
517
  # @example
@@ -492,8 +519,14 @@ module Google
492
519
  #
493
520
  # firestore_client = Google::Cloud::Firestore::V1beta1.new
494
521
  # formatted_parent = Google::Cloud::Firestore::V1beta1::FirestoreClient.any_path_path("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]")
522
+ #
523
+ # # TODO: Initialize +collection_id+:
495
524
  # collection_id = ''
525
+ #
526
+ # # TODO: Initialize +document_id+:
496
527
  # document_id = ''
528
+ #
529
+ # # TODO: Initialize +document+:
497
530
  # document = {}
498
531
  # response = firestore_client.create_document(formatted_parent, collection_id, document_id, document)
499
532
 
@@ -503,7 +536,8 @@ module Google
503
536
  document_id,
504
537
  document,
505
538
  mask: nil,
506
- options: nil
539
+ options: nil,
540
+ &block
507
541
  req = {
508
542
  parent: parent,
509
543
  collection_id: collection_id,
@@ -512,7 +546,7 @@ module Google
512
546
  mask: mask
513
547
  }.delete_if { |_, v| v.nil? }
514
548
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::CreateDocumentRequest)
515
- @create_document.call(req, options)
549
+ @create_document.call(req, options, &block)
516
550
  end
517
551
 
518
552
  # Updates or inserts a document.
@@ -547,13 +581,20 @@ module Google
547
581
  # @param options [Google::Gax::CallOptions]
548
582
  # Overrides the default settings for this call, e.g, timeout,
549
583
  # retries, etc.
584
+ # @yield [result, operation] Access the result along with the RPC operation
585
+ # @yieldparam result [Google::Firestore::V1beta1::Document]
586
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
550
587
  # @return [Google::Firestore::V1beta1::Document]
551
588
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
552
589
  # @example
553
590
  # require "google/cloud/firestore/v1beta1"
554
591
  #
555
592
  # firestore_client = Google::Cloud::Firestore::V1beta1.new
593
+ #
594
+ # # TODO: Initialize +document+:
556
595
  # document = {}
596
+ #
597
+ # # TODO: Initialize +update_mask+:
557
598
  # update_mask = {}
558
599
  # response = firestore_client.update_document(document, update_mask)
559
600
 
@@ -562,7 +603,8 @@ module Google
562
603
  update_mask,
563
604
  mask: nil,
564
605
  current_document: nil,
565
- options: nil
606
+ options: nil,
607
+ &block
566
608
  req = {
567
609
  document: document,
568
610
  update_mask: update_mask,
@@ -570,7 +612,7 @@ module Google
570
612
  current_document: current_document
571
613
  }.delete_if { |_, v| v.nil? }
572
614
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::UpdateDocumentRequest)
573
- @update_document.call(req, options)
615
+ @update_document.call(req, options, &block)
574
616
  end
575
617
 
576
618
  # Deletes a document.
@@ -586,6 +628,9 @@ module Google
586
628
  # @param options [Google::Gax::CallOptions]
587
629
  # Overrides the default settings for this call, e.g, timeout,
588
630
  # retries, etc.
631
+ # @yield [result, operation] Access the result along with the RPC operation
632
+ # @yieldparam result []
633
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
589
634
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
590
635
  # @example
591
636
  # require "google/cloud/firestore/v1beta1"
@@ -597,13 +642,14 @@ module Google
597
642
  def delete_document \
598
643
  name,
599
644
  current_document: nil,
600
- options: nil
645
+ options: nil,
646
+ &block
601
647
  req = {
602
648
  name: name,
603
649
  current_document: current_document
604
650
  }.delete_if { |_, v| v.nil? }
605
651
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::DeleteDocumentRequest)
606
- @delete_document.call(req, options)
652
+ @delete_document.call(req, options, &block)
607
653
  nil
608
654
  end
609
655
 
@@ -653,6 +699,8 @@ module Google
653
699
  #
654
700
  # firestore_client = Google::Cloud::Firestore::V1beta1.new
655
701
  # formatted_database = Google::Cloud::Firestore::V1beta1::FirestoreClient.database_root_path("[PROJECT]", "[DATABASE]")
702
+ #
703
+ # # TODO: Initialize +documents+:
656
704
  # documents = []
657
705
  # firestore_client.batch_get_documents(formatted_database, documents).each do |element|
658
706
  # # Process element.
@@ -691,6 +739,9 @@ module Google
691
739
  # @param options [Google::Gax::CallOptions]
692
740
  # Overrides the default settings for this call, e.g, timeout,
693
741
  # retries, etc.
742
+ # @yield [result, operation] Access the result along with the RPC operation
743
+ # @yieldparam result [Google::Firestore::V1beta1::BeginTransactionResponse]
744
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
694
745
  # @return [Google::Firestore::V1beta1::BeginTransactionResponse]
695
746
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
696
747
  # @example
@@ -703,13 +754,14 @@ module Google
703
754
  def begin_transaction \
704
755
  database,
705
756
  options_: nil,
706
- options: nil
757
+ options: nil,
758
+ &block
707
759
  req = {
708
760
  database: database,
709
761
  options: options_
710
762
  }.delete_if { |_, v| v.nil? }
711
763
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::BeginTransactionRequest)
712
- @begin_transaction.call(req, options)
764
+ @begin_transaction.call(req, options, &block)
713
765
  end
714
766
 
715
767
  # Commits a transaction, while optionally updating documents.
@@ -728,6 +780,9 @@ module Google
728
780
  # @param options [Google::Gax::CallOptions]
729
781
  # Overrides the default settings for this call, e.g, timeout,
730
782
  # retries, etc.
783
+ # @yield [result, operation] Access the result along with the RPC operation
784
+ # @yieldparam result [Google::Firestore::V1beta1::CommitResponse]
785
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
731
786
  # @return [Google::Firestore::V1beta1::CommitResponse]
732
787
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
733
788
  # @example
@@ -735,6 +790,8 @@ module Google
735
790
  #
736
791
  # firestore_client = Google::Cloud::Firestore::V1beta1.new
737
792
  # formatted_database = Google::Cloud::Firestore::V1beta1::FirestoreClient.database_root_path("[PROJECT]", "[DATABASE]")
793
+ #
794
+ # # TODO: Initialize +writes+:
738
795
  # writes = []
739
796
  # response = firestore_client.commit(formatted_database, writes)
740
797
 
@@ -742,14 +799,15 @@ module Google
742
799
  database,
743
800
  writes,
744
801
  transaction: nil,
745
- options: nil
802
+ options: nil,
803
+ &block
746
804
  req = {
747
805
  database: database,
748
806
  writes: writes,
749
807
  transaction: transaction
750
808
  }.delete_if { |_, v| v.nil? }
751
809
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::CommitRequest)
752
- @commit.call(req, options)
810
+ @commit.call(req, options, &block)
753
811
  end
754
812
 
755
813
  # Rolls back a transaction.
@@ -762,25 +820,31 @@ module Google
762
820
  # @param options [Google::Gax::CallOptions]
763
821
  # Overrides the default settings for this call, e.g, timeout,
764
822
  # retries, etc.
823
+ # @yield [result, operation] Access the result along with the RPC operation
824
+ # @yieldparam result []
825
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
765
826
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
766
827
  # @example
767
828
  # require "google/cloud/firestore/v1beta1"
768
829
  #
769
830
  # firestore_client = Google::Cloud::Firestore::V1beta1.new
770
831
  # formatted_database = Google::Cloud::Firestore::V1beta1::FirestoreClient.database_root_path("[PROJECT]", "[DATABASE]")
832
+ #
833
+ # # TODO: Initialize +transaction+:
771
834
  # transaction = ''
772
835
  # firestore_client.rollback(formatted_database, transaction)
773
836
 
774
837
  def rollback \
775
838
  database,
776
839
  transaction,
777
- options: nil
840
+ options: nil,
841
+ &block
778
842
  req = {
779
843
  database: database,
780
844
  transaction: transaction
781
845
  }.delete_if { |_, v| v.nil? }
782
846
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::RollbackRequest)
783
- @rollback.call(req, options)
847
+ @rollback.call(req, options, &block)
784
848
  nil
785
849
  end
786
850
 
@@ -931,6 +995,9 @@ module Google
931
995
  # @param options [Google::Gax::CallOptions]
932
996
  # Overrides the default settings for this call, e.g, timeout,
933
997
  # retries, etc.
998
+ # @yield [result, operation] Access the result along with the RPC operation
999
+ # @yieldparam result [Google::Gax::PagedEnumerable<String>]
1000
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
934
1001
  # @return [Google::Gax::PagedEnumerable<String>]
935
1002
  # An enumerable of String instances.
936
1003
  # See Google::Gax::PagedEnumerable documentation for other
@@ -959,13 +1026,14 @@ module Google
959
1026
  def list_collection_ids \
960
1027
  parent,
961
1028
  page_size: nil,
962
- options: nil
1029
+ options: nil,
1030
+ &block
963
1031
  req = {
964
1032
  parent: parent,
965
1033
  page_size: page_size
966
1034
  }.delete_if { |_, v| v.nil? }
967
1035
  req = Google::Gax::to_proto(req, Google::Firestore::V1beta1::ListCollectionIdsRequest)
968
- @list_collection_ids.call(req, options)
1036
+ @list_collection_ids.call(req, options, &block)
969
1037
  end
970
1038
  end
971
1039
  end