google-cloud-firestore 2.9.1 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 31a027bd1f01c1bd2568417742a77525e4e5659316a9e81ff123062d095b580c
4
- data.tar.gz: d85d3a069d0f3f3847a10ea0963896c3be546f8452a1eb8eb06e9d7c664ec525
3
+ metadata.gz: 11756f53d816d451097f95dfbddda050a3cbdcaf5b732f227e7c2eed5770300b
4
+ data.tar.gz: 4b140ef2eefbc2c4f990b27b340fd39f30eb395e25173093b1d041754c2ac969
5
5
  SHA512:
6
- metadata.gz: d6d1ebeb7079ce28256ab3348110fdbab52d73db16e0cf6d7a1ee27f343d9918d1b8a3e7225504c268a13d3e7371706028487e2a14fcbf0e2b7e2cf8dcbda371
7
- data.tar.gz: 7c34ced999d1368fdc3e645e128197fc7e9cb51850bf39cb753b680bbd5d6a1f70ba3572be04d5ab4c909008104c8a5cd4f1144d24e630ebbebb8333fef6baf1
6
+ metadata.gz: 2961e4c3898492087255b15223c22136a30fa08984106c48e66fc8afc2ab6410df31d83ea4d96c03f484c0d1c6a093d8d976b192b03554c158a8880714b9d8e8
7
+ data.tar.gz: d9bc499cac0f2fa388ed139a50ddc1bc6ef380991a57a5cd8b38973b677b1f609d9d2c862472427870112690a28cf63a802a1be9cd2508a34ccf9da9734029d7
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Release History
2
2
 
3
+ ### 2.10.0 (2023-02-09)
4
+
5
+ #### Features
6
+
7
+ * Added support for multiple databases ([#20029](https://github.com/googleapis/google-cloud-ruby/issues/20029))
8
+
3
9
  ### 2.9.1 (2023-02-03)
4
10
 
5
11
  #### Bug Fixes
@@ -69,7 +69,7 @@ module Google
69
69
  #
70
70
  # @return [String] database identifier.
71
71
  def database_id
72
- "(default)"
72
+ service.database
73
73
  end
74
74
 
75
75
  ##
@@ -30,14 +30,16 @@ module Google
30
30
  attr_accessor :credentials
31
31
  attr_accessor :timeout
32
32
  attr_accessor :host
33
+ attr_accessor :database
33
34
 
34
35
  ##
35
36
  # Creates a new Service instance.
36
- def initialize project, credentials, host: nil, timeout: nil
37
+ def initialize project, credentials, host: nil, timeout: nil, database: nil
37
38
  @project = project
38
39
  @credentials = credentials
39
40
  @host = host
40
41
  @timeout = timeout
42
+ @database = database
41
43
  end
42
44
 
43
45
  def firestore
@@ -48,7 +50,7 @@ module Google
48
50
  config.endpoint = host if host
49
51
  config.lib_name = "gccl"
50
52
  config.lib_version = Google::Cloud::Firestore::VERSION
51
- config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}/databases/(default)" }
53
+ config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}/databases/#{@database}" }
52
54
  end
53
55
  end
54
56
 
@@ -181,18 +183,18 @@ module Google
181
183
  )
182
184
  end
183
185
 
184
- def database_path project_id: project, database_id: "(default)"
186
+ def database_path project_id: project, database_id: database
185
187
  # Originally used V1::FirestoreClient.database_root_path until it was removed in #5405.
186
188
  "projects/#{project_id}/databases/#{database_id}"
187
189
  end
188
190
 
189
- def documents_path project_id: project, database_id: "(default)"
191
+ def documents_path project_id: project, database_id: database
190
192
  # Originally used V1::FirestoreClient.document_root_path until it was removed in #5405.
191
193
  "projects/#{project_id}/databases/#{database_id}/documents"
192
194
  end
193
195
 
194
196
  def inspect
195
- "#{self.class}(#{@project})"
197
+ "#{self.class}(#{@project})(#{@database})"
196
198
  end
197
199
 
198
200
  def read_time_to_timestamp read_time
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Firestore
19
- VERSION = "2.9.1".freeze
19
+ VERSION = "2.10.0".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -59,6 +59,8 @@ module Google
59
59
  # If the param is nil, uses the default endpoint.
60
60
  # @param [String] emulator_host Firestore emulator host. Optional.
61
61
  # If the param is nil, uses the value of the `emulator_host` config.
62
+ # @param [String] database_id Identifier for a Firestore database. If not
63
+ # present, the default database of the project is used.
62
64
  # @param [String] project Alias for the `project_id` argument. Deprecated.
63
65
  # @param [String] keyfile Alias for the `credentials` argument.
64
66
  # Deprecated.
@@ -76,19 +78,22 @@ module Google
76
78
  timeout: nil,
77
79
  endpoint: nil,
78
80
  emulator_host: nil,
81
+ database_id: nil,
79
82
  project: nil,
80
83
  keyfile: nil
81
- project_id ||= (project || default_project_id)
82
- scope ||= configure.scope
83
- timeout ||= configure.timeout
84
- endpoint ||= configure.endpoint
84
+ project_id ||= (project || default_project_id)
85
+ scope ||= configure.scope
86
+ timeout ||= configure.timeout
87
+ endpoint ||= configure.endpoint
85
88
  emulator_host ||= configure.emulator_host
89
+ database_id ||= configure.database_id
86
90
 
87
91
  if emulator_host
88
92
  project_id = project_id.to_s
89
93
  raise ArgumentError, "project_id is missing" if project_id.empty?
90
94
 
91
- service = Firestore::Service.new project_id, :this_channel_is_insecure, host: emulator_host, timeout: timeout
95
+ service = Firestore::Service.new project_id, :this_channel_is_insecure, host: emulator_host,
96
+ timeout: timeout, database: database_id
92
97
  return Firestore::Client.new service
93
98
  end
94
99
 
@@ -103,7 +108,8 @@ module Google
103
108
  project_id = project_id.to_s
104
109
  raise ArgumentError, "project_id is missing" if project_id.empty?
105
110
 
106
- service = Firestore::Service.new project_id, credentials, host: endpoint, timeout: timeout
111
+ service = Firestore::Service.new project_id, credentials, host: endpoint,
112
+ timeout: timeout, database: database_id
107
113
  Firestore::Client.new service
108
114
  end
109
115
 
@@ -42,6 +42,8 @@ module Google
42
42
  #
43
43
  # * `https://www.googleapis.com/auth/datastore`
44
44
  # @param [Integer] timeout Default timeout to use in requests. Optional.
45
+ # @param [String] database_id Identifier for a Firestore database. If not
46
+ # present, the default database of the project is used.
45
47
  #
46
48
  # @return [Google::Cloud::Firestore::Client]
47
49
  #
@@ -58,8 +60,15 @@ module Google
58
60
  # platform_scope = "https://www.googleapis.com/auth/cloud-platform"
59
61
  # firestore = gcloud.firestore scope: platform_scope
60
62
  #
61
- def firestore scope: nil, timeout: nil
62
- Google::Cloud.firestore @project, @keyfile, scope: scope, timeout: (timeout || @timeout)
63
+ # @example The default database can be overridden with the `database_id` option:
64
+ # require "google/cloud"
65
+ #
66
+ # gcloud = Google::Cloud.new
67
+ # database_id = "my-todo-database"
68
+ # firestore = gcloud.firestore database_id: database_id
69
+ #
70
+ def firestore scope: nil, timeout: nil, database_id: nil
71
+ Google::Cloud.firestore @project, @keyfile, scope: scope, timeout: (timeout || @timeout), database_id: database_id
63
72
  end
64
73
 
65
74
  ##
@@ -83,6 +92,8 @@ module Google
83
92
  #
84
93
  # * `https://www.googleapis.com/auth/datastore`
85
94
  # @param [Integer] timeout Default timeout to use in requests. Optional.
95
+ # @param [String] database_id Identifier for a Firestore database. If not
96
+ # present, the default database of the project is used.
86
97
  #
87
98
  # @return [Google::Cloud::Firestore::Client]
88
99
  #
@@ -91,12 +102,13 @@ module Google
91
102
  #
92
103
  # firestore = Google::Cloud.firestore
93
104
  #
94
- def self.firestore project_id = nil, credentials = nil, scope: nil, timeout: nil
105
+ def self.firestore project_id = nil, credentials = nil, scope: nil, timeout: nil, database_id: nil
95
106
  require "google/cloud/firestore"
96
- Google::Cloud::Firestore.new project_id: project_id,
107
+ Google::Cloud::Firestore.new project_id: project_id,
97
108
  credentials: credentials,
98
- scope: scope,
99
- timeout: timeout
109
+ scope: scope,
110
+ timeout: timeout,
111
+ database_id: database_id
100
112
  end
101
113
  end
102
114
  end
@@ -116,8 +128,7 @@ Google::Cloud.configure.add_config! :firestore do |config|
116
128
  ENV["FIRESTORE_EMULATOR_HOST"]
117
129
  end
118
130
  default_scopes = [
119
- "https://www.googleapis.com/auth/cloud-platform",
120
- "https://www.googleapis.com/auth/datastore"
131
+ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore"
121
132
  ]
122
133
 
123
134
  config.add_field! :project_id, default_project, match: String, allow_nil: true
@@ -129,4 +140,5 @@ Google::Cloud.configure.add_config! :firestore do |config|
129
140
  config.add_field! :timeout, nil, match: Integer
130
141
  config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
131
142
  config.add_field! :endpoint, "firestore.googleapis.com", match: String
143
+ config.add_field! :database_id, "(default)", match: String
132
144
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-firestore
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.1
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-03 00:00:00.000000000 Z
11
+ date: 2023-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-core