google-cloud-firestore 2.7.2 → 2.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +8 -26
- data/CHANGELOG.md +69 -0
- data/LOGGING.md +1 -1
- data/lib/google/cloud/firestore/aggregate_query.rb +285 -0
- data/lib/google/cloud/firestore/aggregate_query_snapshot.rb +145 -0
- data/lib/google/cloud/firestore/bulk_commit_batch.rb +73 -0
- data/lib/google/cloud/firestore/bulk_writer.rb +558 -0
- data/lib/google/cloud/firestore/bulk_writer_exception.rb +40 -0
- data/lib/google/cloud/firestore/bulk_writer_operation.rb +126 -0
- data/lib/google/cloud/firestore/bulk_writer_scheduler.rb +164 -0
- data/lib/google/cloud/firestore/client.rb +161 -10
- data/lib/google/cloud/firestore/collection_group.rb +20 -4
- data/lib/google/cloud/firestore/collection_reference.rb +17 -2
- data/lib/google/cloud/firestore/collection_reference_list.rb +4 -3
- data/lib/google/cloud/firestore/convert.rb +6 -7
- data/lib/google/cloud/firestore/document_reference/list.rb +5 -3
- data/lib/google/cloud/firestore/document_reference.rb +20 -3
- data/lib/google/cloud/firestore/document_snapshot.rb +1 -1
- data/lib/google/cloud/firestore/errors.rb +60 -0
- data/lib/google/cloud/firestore/filter.rb +326 -0
- data/lib/google/cloud/firestore/promise/future.rb +97 -0
- data/lib/google/cloud/firestore/query.rb +112 -89
- data/lib/google/cloud/firestore/rate_limiter.rb +80 -0
- data/lib/google/cloud/firestore/service.rb +74 -23
- data/lib/google/cloud/firestore/transaction.rb +57 -4
- data/lib/google/cloud/firestore/version.rb +1 -1
- data/lib/google/cloud/firestore.rb +17 -7
- data/lib/google-cloud-firestore.rb +45 -8
- metadata +17 -146
@@ -59,6 +59,10 @@ 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.
|
64
|
+
# @param [:grpc,:rest] transport Which transport to use to communicate
|
65
|
+
# with the server. Defaults to `:grpc`.
|
62
66
|
# @param [String] project Alias for the `project_id` argument. Deprecated.
|
63
67
|
# @param [String] keyfile Alias for the `credentials` argument.
|
64
68
|
# Deprecated.
|
@@ -76,23 +80,28 @@ module Google
|
|
76
80
|
timeout: nil,
|
77
81
|
endpoint: nil,
|
78
82
|
emulator_host: nil,
|
83
|
+
database_id: nil,
|
84
|
+
transport: nil,
|
79
85
|
project: nil,
|
80
86
|
keyfile: nil
|
81
|
-
project_id
|
82
|
-
scope
|
83
|
-
timeout
|
84
|
-
endpoint
|
87
|
+
project_id ||= project || default_project_id
|
88
|
+
scope ||= configure.scope
|
89
|
+
timeout ||= configure.timeout
|
90
|
+
endpoint ||= configure.endpoint
|
85
91
|
emulator_host ||= configure.emulator_host
|
92
|
+
database_id ||= configure.database_id
|
93
|
+
transport ||= configure.transport
|
86
94
|
|
87
95
|
if emulator_host
|
88
96
|
project_id = project_id.to_s
|
89
97
|
raise ArgumentError, "project_id is missing" if project_id.empty?
|
90
98
|
|
91
|
-
service = Firestore::Service.new project_id, :this_channel_is_insecure, host: emulator_host,
|
99
|
+
service = Firestore::Service.new project_id, :this_channel_is_insecure, host: emulator_host,
|
100
|
+
timeout: timeout, database: database_id, transport: transport
|
92
101
|
return Firestore::Client.new service
|
93
102
|
end
|
94
103
|
|
95
|
-
credentials ||=
|
104
|
+
credentials ||= keyfile || default_credentials(scope: scope)
|
96
105
|
unless credentials.is_a? Google::Auth::Credentials
|
97
106
|
credentials = Firestore::Credentials.new credentials, scope: scope
|
98
107
|
end
|
@@ -103,7 +112,8 @@ module Google
|
|
103
112
|
project_id = project_id.to_s
|
104
113
|
raise ArgumentError, "project_id is missing" if project_id.empty?
|
105
114
|
|
106
|
-
service = Firestore::Service.new project_id, credentials, host: endpoint,
|
115
|
+
service = Firestore::Service.new project_id, credentials, host: endpoint,
|
116
|
+
timeout: timeout, database: database_id, transport: transport
|
107
117
|
Firestore::Client.new service
|
108
118
|
end
|
109
119
|
|
@@ -42,6 +42,10 @@ 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.
|
47
|
+
# @param [:grpc,:rest] transport Which transport to use to communicate
|
48
|
+
# with the server. Defaults to `:grpc`.
|
45
49
|
#
|
46
50
|
# @return [Google::Cloud::Firestore::Client]
|
47
51
|
#
|
@@ -58,8 +62,24 @@ module Google
|
|
58
62
|
# platform_scope = "https://www.googleapis.com/auth/cloud-platform"
|
59
63
|
# firestore = gcloud.firestore scope: platform_scope
|
60
64
|
#
|
61
|
-
|
62
|
-
|
65
|
+
# @example The default database can be overridden with the `database_id` option:
|
66
|
+
# require "google/cloud"
|
67
|
+
#
|
68
|
+
# gcloud = Google::Cloud.new
|
69
|
+
# database_id = "my-todo-database"
|
70
|
+
# firestore = gcloud.firestore database_id: database_id
|
71
|
+
#
|
72
|
+
def firestore scope: nil,
|
73
|
+
timeout: nil,
|
74
|
+
database_id: nil,
|
75
|
+
transport: nil
|
76
|
+
transport ||= Google::Cloud.configure.firestore.transport
|
77
|
+
timeout ||= @timeout
|
78
|
+
Google::Cloud.firestore @project, @keyfile,
|
79
|
+
scope: scope,
|
80
|
+
timeout: timeout,
|
81
|
+
database_id: database_id,
|
82
|
+
transport: transport
|
63
83
|
end
|
64
84
|
|
65
85
|
##
|
@@ -83,6 +103,10 @@ module Google
|
|
83
103
|
#
|
84
104
|
# * `https://www.googleapis.com/auth/datastore`
|
85
105
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
106
|
+
# @param [String] database_id Identifier for a Firestore database. If not
|
107
|
+
# present, the default database of the project is used.
|
108
|
+
# @param [:grpc,:rest] transport Which transport to use to communicate
|
109
|
+
# with the server. Defaults to `:grpc`.
|
86
110
|
#
|
87
111
|
# @return [Google::Cloud::Firestore::Client]
|
88
112
|
#
|
@@ -91,16 +115,26 @@ module Google
|
|
91
115
|
#
|
92
116
|
# firestore = Google::Cloud.firestore
|
93
117
|
#
|
94
|
-
def self.firestore project_id = nil,
|
118
|
+
def self.firestore project_id = nil,
|
119
|
+
credentials = nil,
|
120
|
+
scope: nil,
|
121
|
+
timeout: nil,
|
122
|
+
database_id: nil,
|
123
|
+
transport: nil
|
95
124
|
require "google/cloud/firestore"
|
96
|
-
Google::Cloud
|
125
|
+
transport ||= Google::Cloud.configure.firestore.transport
|
126
|
+
Google::Cloud::Firestore.new project_id: project_id,
|
97
127
|
credentials: credentials,
|
98
|
-
scope:
|
99
|
-
timeout:
|
128
|
+
scope: scope,
|
129
|
+
timeout: timeout,
|
130
|
+
database_id: database_id,
|
131
|
+
transport: transport
|
100
132
|
end
|
101
133
|
end
|
102
134
|
end
|
103
135
|
|
136
|
+
# rubocop:disable Metrics/BlockLength
|
137
|
+
|
104
138
|
# Set the default firestore configuration
|
105
139
|
Google::Cloud.configure.add_config! :firestore do |config|
|
106
140
|
default_project = Google::Cloud::Config.deferred do
|
@@ -116,8 +150,7 @@ Google::Cloud.configure.add_config! :firestore do |config|
|
|
116
150
|
ENV["FIRESTORE_EMULATOR_HOST"]
|
117
151
|
end
|
118
152
|
default_scopes = [
|
119
|
-
"https://www.googleapis.com/auth/cloud-platform",
|
120
|
-
"https://www.googleapis.com/auth/datastore"
|
153
|
+
"https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore"
|
121
154
|
]
|
122
155
|
|
123
156
|
config.add_field! :project_id, default_project, match: String, allow_nil: true
|
@@ -129,4 +162,8 @@ Google::Cloud.configure.add_config! :firestore do |config|
|
|
129
162
|
config.add_field! :timeout, nil, match: Integer
|
130
163
|
config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
|
131
164
|
config.add_field! :endpoint, "firestore.googleapis.com", match: String
|
165
|
+
config.add_field! :database_id, "(default)", match: String
|
166
|
+
config.add_field! :transport, :grpc, match: Symbol
|
132
167
|
end
|
168
|
+
|
169
|
+
# rubocop:enable Metrics/BlockLength
|
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.
|
4
|
+
version: 2.15.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:
|
11
|
+
date: 2024-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-cloud-core
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.10'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.10'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: concurrent-ruby
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,146 +66,6 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.4.2
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: google-style
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 1.26.1
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 1.26.1
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: minitest
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '5.16'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '5.16'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: minitest-autotest
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '1.0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '1.0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: minitest-focus
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '1.1'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '1.1'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: minitest-rg
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '5.2'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '5.2'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: autotest-suffix
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '1.1'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '1.1'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: redcarpet
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - "~>"
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '3.0'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - "~>"
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '3.0'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: simplecov
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - "~>"
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0.9'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - "~>"
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0.9'
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: yard
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - "~>"
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: '0.9'
|
188
|
-
type: :development
|
189
|
-
prerelease: false
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
192
|
-
- - "~>"
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: '0.9'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: yard-doctest
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - "~>"
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: 0.1.13
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - "~>"
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: 0.1.13
|
209
69
|
description: google-cloud-firestore is the official library for Google Cloud Firestore
|
210
70
|
API.
|
211
71
|
email: googleapis-packages@google.com
|
@@ -225,7 +85,14 @@ files:
|
|
225
85
|
- TROUBLESHOOTING.md
|
226
86
|
- lib/google-cloud-firestore.rb
|
227
87
|
- lib/google/cloud/firestore.rb
|
88
|
+
- lib/google/cloud/firestore/aggregate_query.rb
|
89
|
+
- lib/google/cloud/firestore/aggregate_query_snapshot.rb
|
228
90
|
- lib/google/cloud/firestore/batch.rb
|
91
|
+
- lib/google/cloud/firestore/bulk_commit_batch.rb
|
92
|
+
- lib/google/cloud/firestore/bulk_writer.rb
|
93
|
+
- lib/google/cloud/firestore/bulk_writer_exception.rb
|
94
|
+
- lib/google/cloud/firestore/bulk_writer_operation.rb
|
95
|
+
- lib/google/cloud/firestore/bulk_writer_scheduler.rb
|
229
96
|
- lib/google/cloud/firestore/client.rb
|
230
97
|
- lib/google/cloud/firestore/collection_group.rb
|
231
98
|
- lib/google/cloud/firestore/collection_reference.rb
|
@@ -238,13 +105,17 @@ files:
|
|
238
105
|
- lib/google/cloud/firestore/document_reference.rb
|
239
106
|
- lib/google/cloud/firestore/document_reference/list.rb
|
240
107
|
- lib/google/cloud/firestore/document_snapshot.rb
|
108
|
+
- lib/google/cloud/firestore/errors.rb
|
241
109
|
- lib/google/cloud/firestore/field_path.rb
|
242
110
|
- lib/google/cloud/firestore/field_value.rb
|
111
|
+
- lib/google/cloud/firestore/filter.rb
|
243
112
|
- lib/google/cloud/firestore/generate.rb
|
113
|
+
- lib/google/cloud/firestore/promise/future.rb
|
244
114
|
- lib/google/cloud/firestore/query.rb
|
245
115
|
- lib/google/cloud/firestore/query_listener.rb
|
246
116
|
- lib/google/cloud/firestore/query_partition.rb
|
247
117
|
- lib/google/cloud/firestore/query_snapshot.rb
|
118
|
+
- lib/google/cloud/firestore/rate_limiter.rb
|
248
119
|
- lib/google/cloud/firestore/resource_path.rb
|
249
120
|
- lib/google/cloud/firestore/service.rb
|
250
121
|
- lib/google/cloud/firestore/transaction.rb
|
@@ -265,14 +136,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
265
136
|
requirements:
|
266
137
|
- - ">="
|
267
138
|
- !ruby/object:Gem::Version
|
268
|
-
version: '2.
|
139
|
+
version: '2.7'
|
269
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
270
141
|
requirements:
|
271
142
|
- - ">="
|
272
143
|
- !ruby/object:Gem::Version
|
273
144
|
version: '0'
|
274
145
|
requirements: []
|
275
|
-
rubygems_version: 3.
|
146
|
+
rubygems_version: 3.5.6
|
276
147
|
signing_key:
|
277
148
|
specification_version: 4
|
278
149
|
summary: API Client library for Google Cloud Firestore API
|