google-cloud-firestore 0.22.0 → 0.23.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/.yardopts +1 -0
- data/README.md +8 -8
- data/lib/google-cloud-firestore.rb +1 -1
- data/lib/google/cloud/firestore.rb +46 -0
- data/lib/google/cloud/firestore/batch.rb +1 -1
- data/lib/google/cloud/firestore/client.rb +18 -13
- data/lib/google/cloud/firestore/convert.rb +78 -35
- data/lib/google/cloud/firestore/credentials.rb +2 -12
- data/lib/google/cloud/firestore/document_change.rb +124 -0
- data/lib/google/cloud/firestore/document_listener.rb +125 -0
- data/lib/google/cloud/firestore/document_reference.rb +35 -0
- data/lib/google/cloud/firestore/document_snapshot.rb +91 -9
- data/lib/google/cloud/firestore/field_path.rb +23 -13
- data/lib/google/cloud/firestore/query.rb +513 -69
- data/lib/google/cloud/firestore/query_listener.rb +118 -0
- data/lib/google/cloud/firestore/query_snapshot.rb +121 -0
- data/lib/google/cloud/firestore/service.rb +8 -0
- data/lib/google/cloud/firestore/transaction.rb +2 -2
- data/lib/google/cloud/firestore/v1beta1.rb +62 -37
- data/lib/google/cloud/firestore/v1beta1/credentials.rb +41 -0
- data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/common.rb +1 -1
- data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/document.rb +5 -4
- data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/firestore.rb +1 -12
- data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/query.rb +4 -1
- data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/write.rb +37 -8
- data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/any.rb +1 -1
- data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/empty.rb +28 -0
- data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/timestamp.rb +1 -1
- data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/wrappers.rb +1 -1
- data/lib/google/cloud/firestore/v1beta1/doc/google/rpc/status.rb +1 -1
- data/lib/google/cloud/firestore/v1beta1/firestore_client.rb +124 -56
- data/lib/google/cloud/firestore/v1beta1/firestore_client_config.json +2 -2
- data/lib/google/cloud/firestore/version.rb +1 -1
- data/lib/google/cloud/firestore/watch/enumerator_queue.rb +47 -0
- data/lib/google/cloud/firestore/watch/inventory.rb +280 -0
- data/lib/google/cloud/firestore/watch/listener.rb +298 -0
- data/lib/google/cloud/firestore/watch/order.rb +98 -0
- data/lib/google/firestore/v1beta1/firestore_services_pb.rb +2 -4
- data/lib/google/firestore/v1beta1/query_pb.rb +1 -0
- data/lib/google/firestore/v1beta1/write_pb.rb +2 -0
- metadata +40 -3
- data/lib/google/cloud/firestore/v1beta1/doc/overview.rb +0 -53
@@ -0,0 +1,118 @@
|
|
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
|
+
|
16
|
+
require "google/cloud/firestore/watch/listener"
|
17
|
+
|
18
|
+
module Google
|
19
|
+
module Cloud
|
20
|
+
module Firestore
|
21
|
+
##
|
22
|
+
# # QueryListener
|
23
|
+
#
|
24
|
+
# An ongoing listen operation on a query. This is returned by calling
|
25
|
+
# {Query#listen}.
|
26
|
+
#
|
27
|
+
# @example
|
28
|
+
# require "google/cloud/firestore"
|
29
|
+
#
|
30
|
+
# firestore = Google::Cloud::Firestore.new
|
31
|
+
#
|
32
|
+
# # Create a query
|
33
|
+
# query = firestore.col(:cities).order(:population, :desc)
|
34
|
+
#
|
35
|
+
# listener = query.listen do |snapshot|
|
36
|
+
# puts "The query snapshot has #{snapshot.docs.count} documents "
|
37
|
+
# puts "and has #{snapshot.changes.count} changes."
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# # When ready, stop the listen operation and close the stream.
|
41
|
+
# listener.stop
|
42
|
+
#
|
43
|
+
class QueryListener
|
44
|
+
##
|
45
|
+
# @private
|
46
|
+
# Creates the watch stream and listener object.
|
47
|
+
def initialize query, &callback
|
48
|
+
@query = query
|
49
|
+
raise ArgumentError if @query.nil?
|
50
|
+
|
51
|
+
@callback = callback
|
52
|
+
raise ArgumentError if @callback.nil?
|
53
|
+
|
54
|
+
@listener = Watch::Listener.for_query query, &callback
|
55
|
+
end
|
56
|
+
|
57
|
+
##
|
58
|
+
# @private
|
59
|
+
def start
|
60
|
+
@listener.start
|
61
|
+
self
|
62
|
+
end
|
63
|
+
|
64
|
+
##
|
65
|
+
# Stops the client listening for changes.
|
66
|
+
#
|
67
|
+
# @example
|
68
|
+
# require "google/cloud/firestore"
|
69
|
+
#
|
70
|
+
# firestore = Google::Cloud::Firestore.new
|
71
|
+
#
|
72
|
+
# # Create a query
|
73
|
+
# query = firestore.col(:cities).order(:population, :desc)
|
74
|
+
#
|
75
|
+
# listener = query.listen do |snapshot|
|
76
|
+
# puts "The query snapshot has #{snapshot.docs.count} documents "
|
77
|
+
# puts "and has #{snapshot.changes.count} changes."
|
78
|
+
# end
|
79
|
+
#
|
80
|
+
# # When ready, stop the listen operation and close the stream.
|
81
|
+
# listener.stop
|
82
|
+
#
|
83
|
+
def stop
|
84
|
+
@listener.stop
|
85
|
+
end
|
86
|
+
|
87
|
+
##
|
88
|
+
# Whether the client has stopped listening for changes.
|
89
|
+
#
|
90
|
+
# @example
|
91
|
+
# require "google/cloud/firestore"
|
92
|
+
#
|
93
|
+
# firestore = Google::Cloud::Firestore.new
|
94
|
+
#
|
95
|
+
# # Create a query
|
96
|
+
# query = firestore.col(:cities).order(:population, :desc)
|
97
|
+
#
|
98
|
+
# listener = query.listen do |snapshot|
|
99
|
+
# puts "The query snapshot has #{snapshot.docs.count} documents "
|
100
|
+
# puts "and has #{snapshot.changes.count} changes."
|
101
|
+
# end
|
102
|
+
#
|
103
|
+
# # Checks if the listener is stopped.
|
104
|
+
# listener.stopped? #=> false
|
105
|
+
#
|
106
|
+
# # When ready, stop the listen operation and close the stream.
|
107
|
+
# listener.stop
|
108
|
+
#
|
109
|
+
# # Checks if the listener is stopped.
|
110
|
+
# listener.stopped? #=> true
|
111
|
+
#
|
112
|
+
def stopped?
|
113
|
+
@listener.stopped?
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,121 @@
|
|
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
|
+
|
16
|
+
require "google/cloud/firestore/v1beta1"
|
17
|
+
require "google/cloud/firestore/document_reference"
|
18
|
+
require "google/cloud/firestore/collection_reference"
|
19
|
+
require "google/cloud/firestore/convert"
|
20
|
+
|
21
|
+
module Google
|
22
|
+
module Cloud
|
23
|
+
module Firestore
|
24
|
+
##
|
25
|
+
# # QuerySnapshot
|
26
|
+
#
|
27
|
+
# A query snapshot object is an immutable representation of query results,
|
28
|
+
# including chnages from the previous snapshot.
|
29
|
+
#
|
30
|
+
# See {Query#listen}.
|
31
|
+
#
|
32
|
+
# @example
|
33
|
+
# require "google/cloud/firestore"
|
34
|
+
#
|
35
|
+
# firestore = Google::Cloud::Firestore.new
|
36
|
+
#
|
37
|
+
# # Create a query
|
38
|
+
# query = firestore.col(:cities).order(:population, :desc)
|
39
|
+
#
|
40
|
+
# listener = query.listen do |snapshot|
|
41
|
+
# puts "The query snapshot has #{snapshot.docs.count} documents "
|
42
|
+
# puts "and has #{snapshot.changes.count} changes."
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
# # When ready, stop the listen operation and close the stream.
|
46
|
+
# listener.stop
|
47
|
+
#
|
48
|
+
class QuerySnapshot
|
49
|
+
##
|
50
|
+
# The query producing this snapshot.
|
51
|
+
#
|
52
|
+
# @return [Query] query.
|
53
|
+
#
|
54
|
+
def query
|
55
|
+
@query
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# The documents in the snapshot.
|
60
|
+
#
|
61
|
+
# @return [Array<DocumentSnapshot>] document snapshots.
|
62
|
+
#
|
63
|
+
def docs
|
64
|
+
@docs
|
65
|
+
end
|
66
|
+
alias documents docs
|
67
|
+
|
68
|
+
##
|
69
|
+
# The document change objects for the query snapshot.
|
70
|
+
#
|
71
|
+
# @return [Array<DocumentChange>] document changes.
|
72
|
+
#
|
73
|
+
def changes
|
74
|
+
@changes
|
75
|
+
end
|
76
|
+
alias doc_changes changes
|
77
|
+
alias document_changes changes
|
78
|
+
|
79
|
+
##
|
80
|
+
# Returns the number of documents in this query snapshot.
|
81
|
+
#
|
82
|
+
# @return [Integer] The number of documents.
|
83
|
+
#
|
84
|
+
def size
|
85
|
+
docs.size
|
86
|
+
end
|
87
|
+
alias count size
|
88
|
+
|
89
|
+
##
|
90
|
+
# Determines whether query results exists.
|
91
|
+
#
|
92
|
+
# @return [Boolean] Whether query results exists.
|
93
|
+
#
|
94
|
+
def empty?
|
95
|
+
docs.empty?
|
96
|
+
end
|
97
|
+
|
98
|
+
##
|
99
|
+
# The time at which the snapshot was read.
|
100
|
+
#
|
101
|
+
# @return [Time] The time at which the documents were read.
|
102
|
+
#
|
103
|
+
def read_at
|
104
|
+
@read_at
|
105
|
+
end
|
106
|
+
alias read_time read_at
|
107
|
+
|
108
|
+
##
|
109
|
+
# @private New QuerySnapshot
|
110
|
+
def self.from_docs query, docs, changes, read_at
|
111
|
+
new.tap do |s|
|
112
|
+
s.instance_variable_set :@query, query
|
113
|
+
s.instance_variable_set :@docs, docs
|
114
|
+
s.instance_variable_set :@changes, changes
|
115
|
+
s.instance_variable_set :@read_at, read_at
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
@@ -91,6 +91,14 @@ module Google
|
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
+
def listen enum
|
95
|
+
options = call_options parent: database_path
|
96
|
+
|
97
|
+
execute do
|
98
|
+
firestore.listen enum, options: options
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
94
102
|
def begin_transaction transaction_opt
|
95
103
|
options = call_options parent: database_path
|
96
104
|
|
@@ -29,9 +29,9 @@ module Google
|
|
29
29
|
# execute atomically at a single logical point in time.
|
30
30
|
#
|
31
31
|
# All changes are accumulated in memory until the block passed to
|
32
|
-
# {
|
32
|
+
# {Client#transaction} completes. Transactions will be automatically
|
33
33
|
# retried when documents change before the transaction is committed. See
|
34
|
-
# {
|
34
|
+
# {Client#transaction}.
|
35
35
|
#
|
36
36
|
# @example
|
37
37
|
# require "google/cloud/firestore"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
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.
|
@@ -16,33 +16,59 @@ require "google/cloud/firestore/v1beta1/firestore_client"
|
|
16
16
|
|
17
17
|
module Google
|
18
18
|
module Cloud
|
19
|
-
# rubocop:disable LineLength
|
20
|
-
|
21
|
-
##
|
22
|
-
# # Ruby Client for Google Cloud Firestore API ([Beta](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
|
23
|
-
#
|
24
|
-
# [Google Cloud Firestore API][Product Documentation]:
|
25
|
-
#
|
26
|
-
# - [Product Documentation][]
|
27
|
-
#
|
28
|
-
# ## Quick Start
|
29
|
-
# In order to use this library, you first need to go through the following
|
30
|
-
# steps:
|
31
|
-
#
|
32
|
-
# 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
|
33
|
-
# 2. [Enable the Google Cloud Firestore API.](https://console.cloud.google.com/apis/api/firestore)
|
34
|
-
# 3. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
|
35
|
-
#
|
36
|
-
# ### Next Steps
|
37
|
-
# - Read the [Google Cloud Firestore API Product documentation][Product Documentation]
|
38
|
-
# to learn more about the product and see How-to Guides.
|
39
|
-
# - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
|
40
|
-
# to see the full list of Cloud APIs that we cover.
|
41
|
-
#
|
42
|
-
# [Product Documentation]: https://cloud.google.com/firestore
|
43
|
-
#
|
44
|
-
#
|
45
19
|
module Firestore
|
20
|
+
# rubocop:disable LineLength
|
21
|
+
|
22
|
+
##
|
23
|
+
# # Ruby Client for Google Cloud Firestore API ([Beta](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
|
24
|
+
#
|
25
|
+
# [Google Cloud Firestore API][Product Documentation]:
|
26
|
+
#
|
27
|
+
# - [Product Documentation][]
|
28
|
+
#
|
29
|
+
# ## Quick Start
|
30
|
+
# In order to use this library, you first need to go through the following
|
31
|
+
# steps:
|
32
|
+
#
|
33
|
+
# 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
|
34
|
+
# 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
|
35
|
+
# 3. [Enable the Google Cloud Firestore API.](https://console.cloud.google.com/apis/library/firestore.googleapis.com)
|
36
|
+
# 4. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
|
37
|
+
#
|
38
|
+
# ### Next Steps
|
39
|
+
# - Read the [Google Cloud Firestore API Product documentation][Product Documentation]
|
40
|
+
# to learn more about the product and see How-to Guides.
|
41
|
+
# - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
|
42
|
+
# to see the full list of Cloud APIs that we cover.
|
43
|
+
#
|
44
|
+
# [Product Documentation]: https://cloud.google.com/firestore
|
45
|
+
#
|
46
|
+
# ## Enabling Logging
|
47
|
+
#
|
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/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html) as shown below,
|
50
|
+
# or a [`Google::Cloud::Logging::Logger`](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-logging/latest/google/cloud/logging/logger)
|
51
|
+
# that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
|
52
|
+
# and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
|
53
|
+
#
|
54
|
+
# Configuring a Ruby stdlib logger:
|
55
|
+
#
|
56
|
+
# ```ruby
|
57
|
+
# require "logger"
|
58
|
+
#
|
59
|
+
# module MyLogger
|
60
|
+
# LOGGER = Logger.new $stderr, level: Logger::WARN
|
61
|
+
# def logger
|
62
|
+
# LOGGER
|
63
|
+
# end
|
64
|
+
# end
|
65
|
+
#
|
66
|
+
# # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
|
67
|
+
# module GRPC
|
68
|
+
# extend MyLogger
|
69
|
+
# end
|
70
|
+
# ```
|
71
|
+
#
|
46
72
|
module V1beta1
|
47
73
|
# rubocop:enable LineLength
|
48
74
|
|
@@ -88,28 +114,27 @@ module Google
|
|
88
114
|
# or the specified config is missing data points.
|
89
115
|
# @param timeout [Numeric]
|
90
116
|
# The default timeout, in seconds, for calls made through this client.
|
117
|
+
# @param metadata [Hash]
|
118
|
+
# Default metadata to be sent with each request. This can be overridden on a per call basis.
|
119
|
+
# @param exception_transformer [Proc]
|
120
|
+
# An optional proc that intercepts any exceptions raised during an API call to inject
|
121
|
+
# custom error handling.
|
91
122
|
def self.new \
|
92
|
-
service_path: nil,
|
93
|
-
port: nil,
|
94
|
-
channel: nil,
|
95
|
-
chan_creds: nil,
|
96
|
-
updater_proc: nil,
|
97
123
|
credentials: nil,
|
98
124
|
scopes: nil,
|
99
125
|
client_config: nil,
|
100
126
|
timeout: nil,
|
127
|
+
metadata: nil,
|
128
|
+
exception_transformer: nil,
|
101
129
|
lib_name: nil,
|
102
130
|
lib_version: nil
|
103
131
|
kwargs = {
|
104
|
-
service_path: service_path,
|
105
|
-
port: port,
|
106
|
-
channel: channel,
|
107
|
-
chan_creds: chan_creds,
|
108
|
-
updater_proc: updater_proc,
|
109
132
|
credentials: credentials,
|
110
133
|
scopes: scopes,
|
111
134
|
client_config: client_config,
|
112
135
|
timeout: timeout,
|
136
|
+
metadata: metadata,
|
137
|
+
exception_transformer: exception_transformer,
|
113
138
|
lib_name: lib_name,
|
114
139
|
lib_version: lib_version
|
115
140
|
}.select { |_, v| v != nil }
|
@@ -0,0 +1,41 @@
|
|
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
|
+
require "googleauth"
|
16
|
+
|
17
|
+
module Google
|
18
|
+
module Cloud
|
19
|
+
module Firestore
|
20
|
+
module V1beta1
|
21
|
+
class Credentials < Google::Auth::Credentials
|
22
|
+
SCOPE = [
|
23
|
+
"https://www.googleapis.com/auth/cloud-platform",
|
24
|
+
"https://www.googleapis.com/auth/datastore"
|
25
|
+
].freeze
|
26
|
+
PATH_ENV_VARS = %w(FIRESTORE_CREDENTIALS
|
27
|
+
FIRESTORE_KEYFILE
|
28
|
+
GOOGLE_CLOUD_CREDENTIALS
|
29
|
+
GOOGLE_CLOUD_KEYFILE
|
30
|
+
GCLOUD_KEYFILE)
|
31
|
+
JSON_ENV_VARS = %w(FIRESTORE_CREDENTIALS_JSON
|
32
|
+
FIRESTORE_KEYFILE_JSON
|
33
|
+
GOOGLE_CLOUD_CREDENTIALS_JSON
|
34
|
+
GOOGLE_CLOUD_KEYFILE_JSON
|
35
|
+
GCLOUD_KEYFILE_JSON)
|
36
|
+
DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
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.
|
@@ -29,7 +29,7 @@ module Google
|
|
29
29
|
# The map keys represent field names.
|
30
30
|
#
|
31
31
|
# A simple field name contains only characters +a+ to +z+, +A+ to +Z+,
|
32
|
-
# +0+ to +9+, or +_+, and must not start with +0+ to +9
|
32
|
+
# +0+ to +9+, or +_+, and must not start with +0+ to +9+. For example,
|
33
33
|
# +foo_bar_17+.
|
34
34
|
#
|
35
35
|
# Field names matching the regular expression +__.*__+ are reserved. Reserved
|
@@ -59,7 +59,7 @@ module Google
|
|
59
59
|
# @return [Google::Protobuf::Timestamp]
|
60
60
|
# Output only. The time at which the document was last changed.
|
61
61
|
#
|
62
|
-
# This value is
|
62
|
+
# This value is initially set to the +create_time+ then increases
|
63
63
|
# monotonically with each change to the document. It can also be
|
64
64
|
# compared to values from other documents and the +read_time+ of a query.
|
65
65
|
class Document; end
|
@@ -107,7 +107,8 @@ module Google
|
|
107
107
|
# @return [Google::Firestore::V1beta1::ArrayValue]
|
108
108
|
# An array value.
|
109
109
|
#
|
110
|
-
# Cannot contain another array value
|
110
|
+
# Cannot directly contain another array value, though can contain an
|
111
|
+
# map which contains another array.
|
111
112
|
# @!attribute [rw] map_value
|
112
113
|
# @return [Google::Firestore::V1beta1::MapValue]
|
113
114
|
# A map value.
|