Class: Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient

Inherits:
Object
  • Object
show all
Defined in:
lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb

Overview

Operations are created by service FirestoreAdmin, but are accessed via service google.longrunning.Operations.

Constant Summary collapse

SERVICE_ADDRESS =

The default address of the service.

"firestore.googleapis.com".freeze
DEFAULT_SERVICE_PORT =

The default port of the service.

443
GRPC_INTERCEPTORS =

The default set of gRPC interceptors.

[]
DEFAULT_TIMEOUT =
30
ALL_SCOPES =

The scopes needed to make gRPC calls to all of the methods defined in this service.

[
  "https://www.googleapis.com/auth/cloud-platform",
  "https://www.googleapis.com/auth/datastore"
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(credentials: nil, scopes: ALL_SCOPES, client_config: {}, timeout: DEFAULT_TIMEOUT, metadata: nil, service_address: nil, service_port: nil, exception_transformer: nil, lib_name: nil, lib_version: "") ⇒ FirestoreAdminClient

Returns a new instance of FirestoreAdminClient.

Parameters:

  • credentials (Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc) (defaults to: nil)

    Provides the means for authenticating requests made by the client. This parameter can be many types. A Google::Auth::Credentials uses a the properties of its represented keyfile for authenticating requests made by this client. A String will be treated as the path to the keyfile to be used for the construction of credentials for this client. A Hash will be treated as the contents of a keyfile to be used for the construction of credentials for this client. A GRPC::Core::Channel will be used to make calls through. A GRPC::Core::ChannelCredentials for the setting up the RPC client. The channel credentials should already be composed with a GRPC::Core::CallCredentials object. A Proc will be used as an updater_proc for the Grpc channel. The proc transforms the metadata for requests, generally, to give OAuth credentials.

  • scopes (Array<String>) (defaults to: ALL_SCOPES)

    The OAuth scopes for this service. This parameter is ignored if an updater_proc is supplied.

  • client_config (Hash) (defaults to: {})

    A Hash for call options for each method. See Google::Gax#construct_settings for the structure of this data. Falls back to the default config if not specified or the specified config is missing data points.

  • timeout (Numeric) (defaults to: DEFAULT_TIMEOUT)

    The default timeout, in seconds, for calls made through this client.

  • metadata (Hash) (defaults to: nil)

    Default metadata to be sent with each request. This can be overridden on a per call basis.

  • service_address (String) (defaults to: nil)

    Override for the service hostname, or nil to leave as the default.

  • service_port (Integer) (defaults to: nil)

    Override for the service port, or nil to leave as the default.

  • exception_transformer (Proc) (defaults to: nil)

    An optional proc that intercepts any exceptions raised during an API call to inject custom error handling.



189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 189

def initialize \
    credentials: nil,
    scopes: ALL_SCOPES,
    client_config: {},
    timeout: DEFAULT_TIMEOUT,
    metadata: nil,
    service_address: nil,
    service_port: nil,
    exception_transformer: nil,
    lib_name: nil,
    lib_version: ""
  # These require statements are intentionally placed here to initialize
  # the gRPC module only when it's required.
  # See https://github.com/googleapis/toolkit/issues/446
  require "google/gax/grpc"
  require "google/firestore/admin/v1/firestore_admin_services_pb"

  credentials ||= Google::Cloud::Firestore::Admin::V1::Credentials.default

  if credentials.is_a?(String) || credentials.is_a?(Hash)
    updater_proc = Google::Cloud::Firestore::Admin::V1::Credentials.new(credentials).updater_proc
  end
  if credentials.is_a?(GRPC::Core::Channel)
    channel = credentials
  end
  if credentials.is_a?(GRPC::Core::ChannelCredentials)
    chan_creds = credentials
  end
  if credentials.is_a?(Proc)
    updater_proc = credentials
  end
  if credentials.is_a?(Google::Auth::Credentials)
    updater_proc = credentials.updater_proc
  end

  package_version = Google::Cloud::Firestore::VERSION

  google_api_client = "gl-ruby/#{RUBY_VERSION}"
  google_api_client << " #{lib_name}/#{lib_version}" if lib_name
  google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}"
  google_api_client << " grpc/#{GRPC::VERSION}"
  google_api_client.freeze

  headers = { :"x-goog-api-client" => google_api_client }
  if credentials.respond_to?(:quota_project_id) && credentials.quota_project_id
    headers[:"x-goog-user-project"] = credentials.quota_project_id
  end
  headers.merge!() unless .nil?
  client_config_file = Pathname.new(__dir__).join(
    "firestore_admin_client_config.json"
  )
  defaults = client_config_file.open do |f|
    Google::Gax.construct_settings(
      "google.firestore.admin.v1.FirestoreAdmin",
      JSON.parse(f.read),
      client_config,
      Google::Gax::Grpc::STATUS_CODE_NAMES,
      timeout,
      page_descriptors: PAGE_DESCRIPTORS,
      errors: Google::Gax::Grpc::API_ERRORS,
      metadata: headers
    )
  end

  # Allow overriding the service path/port in subclasses.
  service_path = service_address || self.class::SERVICE_ADDRESS
  port = service_port || self.class::DEFAULT_SERVICE_PORT
  interceptors = self.class::GRPC_INTERCEPTORS
  @firestore_admin_stub = Google::Gax::Grpc.create_stub(
    service_path,
    port,
    chan_creds: chan_creds,
    channel: channel,
    updater_proc: updater_proc,
    scopes: scopes,
    interceptors: interceptors,
    &Google::Firestore::Admin::V1::FirestoreAdmin::Stub.method(:new)
  )

  @create_index = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:create_index),
    defaults["create_index"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'parent' => request.parent}
    end
  )
  @list_indexes = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:list_indexes),
    defaults["list_indexes"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'parent' => request.parent}
    end
  )
  @get_index = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:get_index),
    defaults["get_index"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'name' => request.name}
    end
  )
  @delete_index = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:delete_index),
    defaults["delete_index"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'name' => request.name}
    end
  )
  @import_documents = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:import_documents),
    defaults["import_documents"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'name' => request.name}
    end
  )
  @export_documents = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:export_documents),
    defaults["export_documents"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'name' => request.name}
    end
  )
  @get_field = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:get_field),
    defaults["get_field"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'name' => request.name}
    end
  )
  @list_fields = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:list_fields),
    defaults["list_fields"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'parent' => request.parent}
    end
  )
  @update_field = Google::Gax.create_api_call(
    @firestore_admin_stub.method(:update_field),
    defaults["update_field"],
    exception_transformer: exception_transformer,
    params_extractor: proc do |request|
      {'field.name' => request.field.name}
    end
  )
end

Class Method Details

.database_path(project, database) ⇒ String

Returns a fully-qualified database resource name string.

Parameters:

  • project (String)
  • database (String)

Returns:

  • (String)


106
107
108
109
110
111
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 106

def self.database_path project, database
  DATABASE_PATH_TEMPLATE.render(
    :"project" => project,
    :"database" => database
  )
end

.field_path(project, database, collection_id, field_id) ⇒ String

Returns a fully-qualified field resource name string.

Parameters:

  • project (String)
  • database (String)
  • collection_id (String)
  • field_id (String)

Returns:

  • (String)


119
120
121
122
123
124
125
126
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 119

def self.field_path project, database, collection_id, field_id
  FIELD_PATH_TEMPLATE.render(
    :"project" => project,
    :"database" => database,
    :"collection_id" => collection_id,
    :"field_id" => field_id
  )
end

.index_path(project, database, collection_id, index_id) ⇒ String

Returns a fully-qualified index resource name string.

Parameters:

  • project (String)
  • database (String)
  • collection_id (String)
  • index_id (String)

Returns:

  • (String)


134
135
136
137
138
139
140
141
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 134

def self.index_path project, database, collection_id, index_id
  INDEX_PATH_TEMPLATE.render(
    :"project" => project,
    :"database" => database,
    :"collection_id" => collection_id,
    :"index_id" => index_id
  )
end

.parent_path(project, database, collection_id) ⇒ String

Returns a fully-qualified parent resource name string.

Parameters:

  • project (String)
  • database (String)
  • collection_id (String)

Returns:

  • (String)


148
149
150
151
152
153
154
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 148

def self.parent_path project, database, collection_id
  PARENT_PATH_TEMPLATE.render(
    :"project" => project,
    :"database" => database,
    :"collection_id" => collection_id
  )
end

Instance Method Details

#create_index(parent, index, options: nil) {|result, operation| ... } ⇒ Google::Longrunning::Operation

Creates a composite index. This returns a Longrunning::Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)
formatted_parent = Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient.parent_path("[PROJECT]", "[DATABASE]", "[COLLECTION_ID]")

# TODO: Initialize `index`:
index = {}
response = firestore_admin_client.create_index(formatted_parent, index)

Parameters:

  • parent (String)

    Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

  • index (Google::Firestore::Admin::V1::Index | Hash)

    Required. The composite index to create. A hash of the same form as Google::Firestore::Admin::V1::Index can also be provided.

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

Returns:

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



373
374
375
376
377
378
379
380
381
382
383
384
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 373

def create_index \
    parent,
    index,
    options: nil,
    &block
  req = {
    parent: parent,
    index: index
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::CreateIndexRequest)
  @create_index.call(req, options, &block)
end

#delete_index(name, options: nil) {|result, operation| ... } ⇒ Object

Deletes a composite index.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)
formatted_name = Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient.index_path("[PROJECT]", "[DATABASE]", "[COLLECTION_ID]", "[INDEX_ID]")
firestore_admin_client.delete_index(formatted_name)

Parameters:

  • name (String)

    Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

  • result

    []

  • operation (GRPC::ActiveCall::Operation)

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



495
496
497
498
499
500
501
502
503
504
505
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 495

def delete_index \
    name,
    options: nil,
    &block
  req = {
    name: name
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::DeleteIndexRequest)
  @delete_index.call(req, options, &block)
  nil
end

#export_documents(name, collection_ids: nil, output_uri_prefix: nil, options: nil) {|result, operation| ... } ⇒ Google::Longrunning::Operation

Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)
formatted_name = Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient.database_path("[PROJECT]", "[DATABASE]")
response = firestore_admin_client.export_documents(formatted_name)

Parameters:

  • name (String)

    Required. Database to export. Should be of the form: projects/{project_id}/databases/{database_id}.

  • collection_ids (Array<String>) (defaults to: nil)

    Which collection ids to export. Unspecified means all collections.

  • output_uri_prefix (String) (defaults to: nil)

    The output URI. Currently only supports Google Cloud Storage URIs of the form: gs://BUCKET_NAME[/NAMESPACE_PATH], where BUCKET_NAME is the name of the Google Cloud Storage bucket and NAMESPACE_PATH is an optional Google Cloud Storage namespace path. When choosing a name, be sure to consider Google Cloud Storage naming guidelines: https://cloud.google.com/storage/docs/naming. If the URI is a bucket (without a namespace path), a prefix will be generated based on the start time.

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

Returns:

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



593
594
595
596
597
598
599
600
601
602
603
604
605
606
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 593

def export_documents \
    name,
    collection_ids: nil,
    output_uri_prefix: nil,
    options: nil,
    &block
  req = {
    name: name,
    collection_ids: collection_ids,
    output_uri_prefix: output_uri_prefix
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::ExportDocumentsRequest)
  @export_documents.call(req, options, &block)
end

#get_field(name, options: nil) {|result, operation| ... } ⇒ Google::Firestore::Admin::V1::Field

Gets the metadata and configuration for a Field.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)
formatted_name = Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient.field_path("[PROJECT]", "[DATABASE]", "[COLLECTION_ID]", "[FIELD_ID]")
response = firestore_admin_client.get_field(formatted_name)

Parameters:

  • name (String)

    Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

Returns:

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



628
629
630
631
632
633
634
635
636
637
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 628

def get_field \
    name,
    options: nil,
    &block
  req = {
    name: name
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::GetFieldRequest)
  @get_field.call(req, options, &block)
end

#get_index(name, options: nil) {|result, operation| ... } ⇒ Google::Firestore::Admin::V1::Index

Gets a composite index.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)
formatted_name = Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient.index_path("[PROJECT]", "[DATABASE]", "[COLLECTION_ID]", "[INDEX_ID]")
response = firestore_admin_client.get_index(formatted_name)

Parameters:

  • name (String)

    Required. A name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

Returns:

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



465
466
467
468
469
470
471
472
473
474
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 465

def get_index \
    name,
    options: nil,
    &block
  req = {
    name: name
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::GetIndexRequest)
  @get_index.call(req, options, &block)
end

#import_documents(name, collection_ids: nil, input_uri_prefix: nil, options: nil) {|result, operation| ... } ⇒ Google::Longrunning::Operation

Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportDocuments operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Firestore.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)
formatted_name = Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient.database_path("[PROJECT]", "[DATABASE]")
response = firestore_admin_client.import_documents(formatted_name)

Parameters:

  • name (String)

    Required. Database to import into. Should be of the form: projects/{project_id}/databases/{database_id}.

  • collection_ids (Array<String>) (defaults to: nil)

    Which collection ids to import. Unspecified means all collections included in the import.

  • input_uri_prefix (String) (defaults to: nil)

    Location of the exported files. This must match the output_uri_prefix of an ExportDocumentsResponse from an export that has completed successfully. See: Firestore::Admin::V1::ExportDocumentsResponse#output_uri_prefix.

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

Returns:

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



540
541
542
543
544
545
546
547
548
549
550
551
552
553
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 540

def import_documents \
    name,
    collection_ids: nil,
    input_uri_prefix: nil,
    options: nil,
    &block
  req = {
    name: name,
    collection_ids: collection_ids,
    input_uri_prefix: input_uri_prefix
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::ImportDocumentsRequest)
  @import_documents.call(req, options, &block)
end

#list_fields(parent, filter: nil, page_size: nil, options: nil) {|result, operation| ... } ⇒ Google::Gax::PagedEnumerable<Google::Firestore::Admin::V1::Field>

Lists the field configuration and metadata for this database.

Currently, FirestoreAdmin::ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin::ListFields with the filter set to indexConfig.usesAncestorConfig:false.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)
formatted_parent = Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient.parent_path("[PROJECT]", "[DATABASE]", "[COLLECTION_ID]")

# Iterate over all results.
firestore_admin_client.list_fields(formatted_parent).each do |element|
  # Process element.
end

# Or iterate over results one page at a time.
firestore_admin_client.list_fields(formatted_parent).each_page do |page|
  # Process each page at a time.
  page.each do |element|
    # Process element.
  end
end

Parameters:

  • parent (String)

    Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

  • filter (String) (defaults to: nil)

    The filter to apply to list results. Currently, FirestoreAdmin::ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin::ListFields with the filter set to indexConfig.usesAncestorConfig:false.

  • page_size (Integer) (defaults to: nil)

    The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

Returns:

  • (Google::Gax::PagedEnumerable<Google::Firestore::Admin::V1::Field>)

    An enumerable of Google::Firestore::Admin::V1::Field instances. See Google::Gax::PagedEnumerable documentation for other operations such as per-page iteration or access to the response object.

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



692
693
694
695
696
697
698
699
700
701
702
703
704
705
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 692

def list_fields \
    parent,
    filter: nil,
    page_size: nil,
    options: nil,
    &block
  req = {
    parent: parent,
    filter: filter,
    page_size: page_size
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::ListFieldsRequest)
  @list_fields.call(req, options, &block)
end

#list_indexes(parent, filter: nil, page_size: nil, options: nil) {|result, operation| ... } ⇒ Google::Gax::PagedEnumerable<Google::Firestore::Admin::V1::Index>

Lists composite indexes.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)
formatted_parent = Google::Cloud::Firestore::Admin::V1::FirestoreAdminClient.parent_path("[PROJECT]", "[DATABASE]", "[COLLECTION_ID]")

# Iterate over all results.
firestore_admin_client.list_indexes(formatted_parent).each do |element|
  # Process element.
end

# Or iterate over results one page at a time.
firestore_admin_client.list_indexes(formatted_parent).each_page do |page|
  # Process each page at a time.
  page.each do |element|
    # Process element.
  end
end

Parameters:

  • parent (String)

    Required. A parent name of the form projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}

  • filter (String) (defaults to: nil)

    The filter to apply to list results.

  • page_size (Integer) (defaults to: nil)

    The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

Returns:

  • (Google::Gax::PagedEnumerable<Google::Firestore::Admin::V1::Index>)

    An enumerable of Google::Firestore::Admin::V1::Index instances. See Google::Gax::PagedEnumerable documentation for other operations such as per-page iteration or access to the response object.

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



430
431
432
433
434
435
436
437
438
439
440
441
442
443
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 430

def list_indexes \
    parent,
    filter: nil,
    page_size: nil,
    options: nil,
    &block
  req = {
    parent: parent,
    filter: filter,
    page_size: page_size
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::ListIndexesRequest)
  @list_indexes.call(req, options, &block)
end

#update_field(field, update_mask: nil, options: nil) {|result, operation| ... } ⇒ Google::Longrunning::Operation

Updates a field configuration. Currently, field updates apply only to single field index configuration. However, calls to FirestoreAdmin::UpdateField should provide a field mask to avoid changing any configuration that the caller isn't aware of. The field mask should be specified as: { paths: "index_config" }.

This call returns a Longrunning::Operation which may be used to track the status of the field update. The metadata for the operation will be the type FieldOperationMetadata.

To configure the default field settings for the database, use the special Field with resource name: projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*.

Examples:

require "google/cloud/firestore/admin"

firestore_admin_client = Google::Cloud::Firestore::Admin.new(version: :v1)

# TODO: Initialize `field`:
field = {}
response = firestore_admin_client.update_field(field)

Parameters:

  • field (Google::Firestore::Admin::V1::Field | Hash)

    Required. The field to be updated. A hash of the same form as Google::Firestore::Admin::V1::Field can also be provided.

  • update_mask (Google::Protobuf::FieldMask | Hash) (defaults to: nil)

    A mask, relative to the field. If specified, only configuration specified by this field_mask will be updated in the field. A hash of the same form as Google::Protobuf::FieldMask can also be provided.

  • options (Google::Gax::CallOptions) (defaults to: nil)

    Overrides the default settings for this call, e.g, timeout, retries, etc.

Yields:

  • (result, operation)

    Access the result along with the RPC operation

Yield Parameters:

Returns:

Raises:

  • (Google::Gax::GaxError)

    if the RPC is aborted.



747
748
749
750
751
752
753
754
755
756
757
758
# File 'lib/google/cloud/firestore/admin/v1/firestore_admin_client.rb', line 747

def update_field \
    field,
    update_mask: nil,
    options: nil,
    &block
  req = {
    field: field,
    update_mask: update_mask
  }.delete_if { |_, v| v.nil? }
  req = Google::Gax::to_proto(req, Google::Firestore::Admin::V1::UpdateFieldRequest)
  @update_field.call(req, options, &block)
end