google-cloud-firestore 0.24.2 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/CHANGELOG.md +26 -0
  4. data/EMULATOR.md +49 -0
  5. data/lib/google-cloud-firestore.rb +6 -1
  6. data/lib/google/cloud/firestore.rb +36 -8
  7. data/lib/google/cloud/firestore/batch.rb +1 -1
  8. data/lib/google/cloud/firestore/client.rb +152 -4
  9. data/lib/google/cloud/firestore/collection_reference.rb +1 -1
  10. data/lib/google/cloud/firestore/commit_response.rb +1 -1
  11. data/lib/google/cloud/firestore/convert.rb +53 -38
  12. data/lib/google/cloud/firestore/credentials.rb +2 -2
  13. data/lib/google/cloud/firestore/document_reference.rb +2 -1
  14. data/lib/google/cloud/firestore/document_snapshot.rb +5 -5
  15. data/lib/google/cloud/firestore/field_path.rb +2 -2
  16. data/lib/google/cloud/firestore/field_value.rb +139 -9
  17. data/lib/google/cloud/firestore/query.rb +21 -15
  18. data/lib/google/cloud/firestore/query_snapshot.rb +1 -1
  19. data/lib/google/cloud/firestore/service.rb +31 -13
  20. data/lib/google/cloud/firestore/transaction.rb +39 -5
  21. data/lib/google/cloud/firestore/v1.rb +152 -0
  22. data/lib/google/cloud/firestore/v1/credentials.rb +42 -0
  23. data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/common.rb +64 -0
  24. data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/document.rb +136 -0
  25. data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/firestore.rb +574 -0
  26. data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/query.rb +219 -0
  27. data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/write.rb +237 -0
  28. data/lib/google/cloud/firestore/v1/doc/google/protobuf/any.rb +130 -0
  29. data/lib/google/cloud/firestore/v1/doc/google/protobuf/empty.rb +29 -0
  30. data/lib/google/cloud/firestore/v1/doc/google/protobuf/timestamp.rb +109 -0
  31. data/lib/google/cloud/firestore/v1/doc/google/protobuf/wrappers.rb +26 -0
  32. data/lib/google/cloud/firestore/v1/doc/google/rpc/status.rb +84 -0
  33. data/lib/google/cloud/firestore/v1/firestore_client.rb +1044 -0
  34. data/lib/google/cloud/firestore/v1/firestore_client_config.json +100 -0
  35. data/lib/google/cloud/firestore/v1beta1.rb +1 -1
  36. data/lib/google/cloud/firestore/v1beta1/credentials.rb +1 -1
  37. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/common.rb +1 -1
  38. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/document.rb +1 -1
  39. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/firestore.rb +1 -1
  40. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/query.rb +1 -1
  41. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/write.rb +41 -1
  42. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/any.rb +1 -1
  43. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/empty.rb +1 -1
  44. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/timestamp.rb +1 -1
  45. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/wrappers.rb +1 -65
  46. data/lib/google/cloud/firestore/v1beta1/doc/google/rpc/status.rb +1 -1
  47. data/lib/google/cloud/firestore/v1beta1/firestore_client.rb +1 -1
  48. data/lib/google/cloud/firestore/v1beta1/firestore_client_config.json +1 -1
  49. data/lib/google/cloud/firestore/version.rb +1 -1
  50. data/lib/google/cloud/firestore/watch/enumerator_queue.rb +0 -2
  51. data/lib/google/cloud/firestore/watch/inventory.rb +2 -2
  52. data/lib/google/cloud/firestore/watch/listener.rb +16 -17
  53. data/lib/google/cloud/firestore/watch/order.rb +1 -1
  54. data/lib/google/firestore/v1/common_pb.rb +45 -0
  55. data/lib/google/firestore/v1/document_pb.rb +50 -0
  56. data/lib/google/firestore/v1/firestore_pb.rb +220 -0
  57. data/lib/google/firestore/v1/firestore_services_pb.rb +87 -0
  58. data/lib/google/firestore/v1/query_pb.rb +105 -0
  59. data/lib/google/firestore/v1/write_pb.rb +79 -0
  60. data/lib/google/firestore/v1beta1/firestore_services_pb.rb +2 -1
  61. data/lib/google/firestore/v1beta1/write_pb.rb +3 -0
  62. metadata +26 -5
@@ -0,0 +1,219 @@
1
+ # Copyright 2019 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
+ module Google
17
+ module Firestore
18
+ module V1
19
+ # A Firestore query.
20
+ # @!attribute [rw] select
21
+ # @return [Google::Firestore::V1::StructuredQuery::Projection]
22
+ # The projection to return.
23
+ # @!attribute [rw] from
24
+ # @return [Array<Google::Firestore::V1::StructuredQuery::CollectionSelector>]
25
+ # The collections to query.
26
+ # @!attribute [rw] where
27
+ # @return [Google::Firestore::V1::StructuredQuery::Filter]
28
+ # The filter to apply.
29
+ # @!attribute [rw] order_by
30
+ # @return [Array<Google::Firestore::V1::StructuredQuery::Order>]
31
+ # The order to apply to the query results.
32
+ #
33
+ # Firestore guarantees a stable ordering through the following rules:
34
+ #
35
+ # * Any field required to appear in `order_by`, that is not already
36
+ # specified in `order_by`, is appended to the order in field name order
37
+ # by default.
38
+ # * If an order on `__name__` is not specified, it is appended by default.
39
+ #
40
+ # Fields are appended with the same sort direction as the last order
41
+ # specified, or 'ASCENDING' if no order was specified. For example:
42
+ #
43
+ # * `SELECT * FROM Foo ORDER BY A` becomes
44
+ # `SELECT * FROM Foo ORDER BY A, __name__`
45
+ # * `SELECT * FROM Foo ORDER BY A DESC` becomes
46
+ # `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`
47
+ # * `SELECT * FROM Foo WHERE A > 1` becomes
48
+ # `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
49
+ # @!attribute [rw] start_at
50
+ # @return [Google::Firestore::V1::Cursor]
51
+ # A starting point for the query results.
52
+ # @!attribute [rw] end_at
53
+ # @return [Google::Firestore::V1::Cursor]
54
+ # A end point for the query results.
55
+ # @!attribute [rw] offset
56
+ # @return [Integer]
57
+ # The number of results to skip.
58
+ #
59
+ # Applies before limit, but after all other constraints. Must be >= 0 if
60
+ # specified.
61
+ # @!attribute [rw] limit
62
+ # @return [Google::Protobuf::Int32Value]
63
+ # The maximum number of results to return.
64
+ #
65
+ # Applies after all other constraints.
66
+ # Must be >= 0 if specified.
67
+ class StructuredQuery
68
+ # A selection of a collection, such as `messages as m1`.
69
+ # @!attribute [rw] collection_id
70
+ # @return [String]
71
+ # The collection ID.
72
+ # When set, selects only collections with this ID.
73
+ # @!attribute [rw] all_descendants
74
+ # @return [true, false]
75
+ # When false, selects only collections that are immediate children of
76
+ # the `parent` specified in the containing `RunQueryRequest`.
77
+ # When true, selects all descendant collections.
78
+ class CollectionSelector; end
79
+
80
+ # A filter.
81
+ # @!attribute [rw] composite_filter
82
+ # @return [Google::Firestore::V1::StructuredQuery::CompositeFilter]
83
+ # A composite filter.
84
+ # @!attribute [rw] field_filter
85
+ # @return [Google::Firestore::V1::StructuredQuery::FieldFilter]
86
+ # A filter on a document field.
87
+ # @!attribute [rw] unary_filter
88
+ # @return [Google::Firestore::V1::StructuredQuery::UnaryFilter]
89
+ # A filter that takes exactly one argument.
90
+ class Filter; end
91
+
92
+ # A filter that merges multiple other filters using the given operator.
93
+ # @!attribute [rw] op
94
+ # @return [Google::Firestore::V1::StructuredQuery::CompositeFilter::Operator]
95
+ # The operator for combining multiple filters.
96
+ # @!attribute [rw] filters
97
+ # @return [Array<Google::Firestore::V1::StructuredQuery::Filter>]
98
+ # The list of filters to combine.
99
+ # Must contain at least one filter.
100
+ class CompositeFilter
101
+ # A composite filter operator.
102
+ module Operator
103
+ # Unspecified. This value must not be used.
104
+ OPERATOR_UNSPECIFIED = 0
105
+
106
+ # The results are required to satisfy each of the combined filters.
107
+ AND = 1
108
+ end
109
+ end
110
+
111
+ # A filter on a specific field.
112
+ # @!attribute [rw] field
113
+ # @return [Google::Firestore::V1::StructuredQuery::FieldReference]
114
+ # The field to filter by.
115
+ # @!attribute [rw] op
116
+ # @return [Google::Firestore::V1::StructuredQuery::FieldFilter::Operator]
117
+ # The operator to filter by.
118
+ # @!attribute [rw] value
119
+ # @return [Google::Firestore::V1::Value]
120
+ # The value to compare to.
121
+ class FieldFilter
122
+ # A field filter operator.
123
+ module Operator
124
+ # Unspecified. This value must not be used.
125
+ OPERATOR_UNSPECIFIED = 0
126
+
127
+ # Less than. Requires that the field come first in `order_by`.
128
+ LESS_THAN = 1
129
+
130
+ # Less than or equal. Requires that the field come first in `order_by`.
131
+ LESS_THAN_OR_EQUAL = 2
132
+
133
+ # Greater than. Requires that the field come first in `order_by`.
134
+ GREATER_THAN = 3
135
+
136
+ # Greater than or equal. Requires that the field come first in
137
+ # `order_by`.
138
+ GREATER_THAN_OR_EQUAL = 4
139
+
140
+ # Equal.
141
+ EQUAL = 5
142
+
143
+ # Contains. Requires that the field is an array.
144
+ ARRAY_CONTAINS = 7
145
+ end
146
+ end
147
+
148
+ # A filter with a single operand.
149
+ # @!attribute [rw] op
150
+ # @return [Google::Firestore::V1::StructuredQuery::UnaryFilter::Operator]
151
+ # The unary operator to apply.
152
+ # @!attribute [rw] field
153
+ # @return [Google::Firestore::V1::StructuredQuery::FieldReference]
154
+ # The field to which to apply the operator.
155
+ class UnaryFilter
156
+ # A unary operator.
157
+ module Operator
158
+ # Unspecified. This value must not be used.
159
+ OPERATOR_UNSPECIFIED = 0
160
+
161
+ # Test if a field is equal to NaN.
162
+ IS_NAN = 2
163
+
164
+ # Test if an exprestion evaluates to Null.
165
+ IS_NULL = 3
166
+ end
167
+ end
168
+
169
+ # An order on a field.
170
+ # @!attribute [rw] field
171
+ # @return [Google::Firestore::V1::StructuredQuery::FieldReference]
172
+ # The field to order by.
173
+ # @!attribute [rw] direction
174
+ # @return [Google::Firestore::V1::StructuredQuery::Direction]
175
+ # The direction to order by. Defaults to `ASCENDING`.
176
+ class Order; end
177
+
178
+ # A reference to a field, such as `max(messages.time) as max_time`.
179
+ # @!attribute [rw] field_path
180
+ # @return [String]
181
+ class FieldReference; end
182
+
183
+ # The projection of document's fields to return.
184
+ # @!attribute [rw] fields
185
+ # @return [Array<Google::Firestore::V1::StructuredQuery::FieldReference>]
186
+ # The fields to return.
187
+ #
188
+ # If empty, all fields are returned. To only return the name
189
+ # of the document, use `['__name__']`.
190
+ class Projection; end
191
+
192
+ # A sort direction.
193
+ module Direction
194
+ # Unspecified.
195
+ DIRECTION_UNSPECIFIED = 0
196
+
197
+ # Ascending.
198
+ ASCENDING = 1
199
+
200
+ # Descending.
201
+ DESCENDING = 2
202
+ end
203
+ end
204
+
205
+ # A position in a query result set.
206
+ # @!attribute [rw] values
207
+ # @return [Array<Google::Firestore::V1::Value>]
208
+ # The values that represent a position, in the order they appear in
209
+ # the order by clause of a query.
210
+ #
211
+ # Can contain fewer values than specified in the order by clause.
212
+ # @!attribute [rw] before
213
+ # @return [true, false]
214
+ # If the position is just before or just after the given values, relative
215
+ # to the sort order defined by the query.
216
+ class Cursor; end
217
+ end
218
+ end
219
+ end
@@ -0,0 +1,237 @@
1
+ # Copyright 2019 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
+ module Google
17
+ module Firestore
18
+ module V1
19
+ # A write on a document.
20
+ # @!attribute [rw] update
21
+ # @return [Google::Firestore::V1::Document]
22
+ # A document to write.
23
+ # @!attribute [rw] delete
24
+ # @return [String]
25
+ # A document name to delete. In the format:
26
+ # `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
27
+ # @!attribute [rw] transform
28
+ # @return [Google::Firestore::V1::DocumentTransform]
29
+ # Applies a tranformation to a document.
30
+ # At most one `transform` per document is allowed in a given request.
31
+ # An `update` cannot follow a `transform` on the same document in a given
32
+ # request.
33
+ # @!attribute [rw] update_mask
34
+ # @return [Google::Firestore::V1::DocumentMask]
35
+ # The fields to update in this write.
36
+ #
37
+ # This field can be set only when the operation is `update`.
38
+ # If the mask is not set for an `update` and the document exists, any
39
+ # existing data will be overwritten.
40
+ # If the mask is set and the document on the server has fields not covered by
41
+ # the mask, they are left unchanged.
42
+ # Fields referenced in the mask, but not present in the input document, are
43
+ # deleted from the document on the server.
44
+ # The field paths in this mask must not contain a reserved field name.
45
+ # @!attribute [rw] current_document
46
+ # @return [Google::Firestore::V1::Precondition]
47
+ # An optional precondition on the document.
48
+ #
49
+ # The write will fail if this is set and not met by the target document.
50
+ class Write; end
51
+
52
+ # A transformation of a document.
53
+ # @!attribute [rw] document
54
+ # @return [String]
55
+ # The name of the document to transform.
56
+ # @!attribute [rw] field_transforms
57
+ # @return [Array<Google::Firestore::V1::DocumentTransform::FieldTransform>]
58
+ # The list of transformations to apply to the fields of the document, in
59
+ # order.
60
+ # This must not be empty.
61
+ class DocumentTransform
62
+ # A transformation of a field of the document.
63
+ # @!attribute [rw] field_path
64
+ # @return [String]
65
+ # The path of the field. See {Google::Firestore::V1::Document#fields Document#fields} for the field path syntax
66
+ # reference.
67
+ # @!attribute [rw] set_to_server_value
68
+ # @return [Google::Firestore::V1::DocumentTransform::FieldTransform::ServerValue]
69
+ # Sets the field to the given server value.
70
+ # @!attribute [rw] increment
71
+ # @return [Google::Firestore::V1::Value]
72
+ # Adds the given value to the field's current value.
73
+ #
74
+ # This must be an integer or a double value.
75
+ # If the field is not an integer or double, or if the field does not yet
76
+ # exist, the transformation will set the field to the given value.
77
+ # If either of the given value or the current field value are doubles,
78
+ # both values will be interpreted as doubles. Double arithmetic and
79
+ # representation of double values follow IEEE 754 semantics.
80
+ # If there is positive/negative integer overflow, the field is resolved
81
+ # to the largest magnitude positive/negative integer.
82
+ # @!attribute [rw] maximum
83
+ # @return [Google::Firestore::V1::Value]
84
+ # Sets the field to the maximum of its current value and the given value.
85
+ #
86
+ # This must be an integer or a double value.
87
+ # If the field is not an integer or double, or if the field does not yet
88
+ # exist, the transformation will set the field to the given value.
89
+ # If a maximum operation is applied where the field and the input value
90
+ # are of mixed types (that is - one is an integer and one is a double)
91
+ # the field takes on the type of the larger operand. If the operands are
92
+ # equivalent (e.g. 3 and 3.0), the field does not change.
93
+ # 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and
94
+ # zero input value is always the stored value.
95
+ # The maximum of any numeric value x and NaN is NaN.
96
+ # @!attribute [rw] minimum
97
+ # @return [Google::Firestore::V1::Value]
98
+ # Sets the field to the minimum of its current value and the given value.
99
+ #
100
+ # This must be an integer or a double value.
101
+ # If the field is not an integer or double, or if the field does not yet
102
+ # exist, the transformation will set the field to the input value.
103
+ # If a minimum operation is applied where the field and the input value
104
+ # are of mixed types (that is - one is an integer and one is a double)
105
+ # the field takes on the type of the smaller operand. If the operands are
106
+ # equivalent (e.g. 3 and 3.0), the field does not change.
107
+ # 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and
108
+ # zero input value is always the stored value.
109
+ # The minimum of any numeric value x and NaN is NaN.
110
+ # @!attribute [rw] append_missing_elements
111
+ # @return [Google::Firestore::V1::ArrayValue]
112
+ # Append the given elements in order if they are not already present in
113
+ # the current field value.
114
+ # If the field is not an array, or if the field does not yet exist, it is
115
+ # first set to the empty array.
116
+ #
117
+ # Equivalent numbers of different types (e.g. 3L and 3.0) are
118
+ # considered equal when checking if a value is missing.
119
+ # NaN is equal to NaN, and Null is equal to Null.
120
+ # If the input contains multiple equivalent values, only the first will
121
+ # be considered.
122
+ #
123
+ # The corresponding transform_result will be the null value.
124
+ # @!attribute [rw] remove_all_from_array
125
+ # @return [Google::Firestore::V1::ArrayValue]
126
+ # Remove all of the given elements from the array in the field.
127
+ # If the field is not an array, or if the field does not yet exist, it is
128
+ # set to the empty array.
129
+ #
130
+ # Equivalent numbers of the different types (e.g. 3L and 3.0) are
131
+ # considered equal when deciding whether an element should be removed.
132
+ # NaN is equal to NaN, and Null is equal to Null.
133
+ # This will remove all equivalent values if there are duplicates.
134
+ #
135
+ # The corresponding transform_result will be the null value.
136
+ class FieldTransform
137
+ # A value that is calculated by the server.
138
+ module ServerValue
139
+ # Unspecified. This value must not be used.
140
+ SERVER_VALUE_UNSPECIFIED = 0
141
+
142
+ # The time at which the server processed the request, with millisecond
143
+ # precision.
144
+ REQUEST_TIME = 1
145
+ end
146
+ end
147
+ end
148
+
149
+ # The result of applying a write.
150
+ # @!attribute [rw] update_time
151
+ # @return [Google::Protobuf::Timestamp]
152
+ # The last update time of the document after applying the write. Not set
153
+ # after a `delete`.
154
+ #
155
+ # If the write did not actually change the document, this will be the
156
+ # previous update_time.
157
+ # @!attribute [rw] transform_results
158
+ # @return [Array<Google::Firestore::V1::Value>]
159
+ # The results of applying each {Google::Firestore::V1::DocumentTransform::FieldTransform DocumentTransform::FieldTransform}, in the
160
+ # same order.
161
+ class WriteResult; end
162
+
163
+ # A {Google::Firestore::V1::Document Document} has changed.
164
+ #
165
+ # May be the result of multiple {Google::Firestore::V1::Write writes}, including deletes, that
166
+ # ultimately resulted in a new value for the {Google::Firestore::V1::Document Document}.
167
+ #
168
+ # Multiple {Google::Firestore::V1::DocumentChange DocumentChange} messages may be returned for the same logical
169
+ # change, if multiple targets are affected.
170
+ # @!attribute [rw] document
171
+ # @return [Google::Firestore::V1::Document]
172
+ # The new state of the {Google::Firestore::V1::Document Document}.
173
+ #
174
+ # If `mask` is set, contains only fields that were updated or added.
175
+ # @!attribute [rw] target_ids
176
+ # @return [Array<Integer>]
177
+ # A set of target IDs of targets that match this document.
178
+ # @!attribute [rw] removed_target_ids
179
+ # @return [Array<Integer>]
180
+ # A set of target IDs for targets that no longer match this document.
181
+ class DocumentChange; end
182
+
183
+ # A {Google::Firestore::V1::Document Document} has been deleted.
184
+ #
185
+ # May be the result of multiple {Google::Firestore::V1::Write writes}, including updates, the
186
+ # last of which deleted the {Google::Firestore::V1::Document Document}.
187
+ #
188
+ # Multiple {Google::Firestore::V1::DocumentDelete DocumentDelete} messages may be returned for the same logical
189
+ # delete, if multiple targets are affected.
190
+ # @!attribute [rw] document
191
+ # @return [String]
192
+ # The resource name of the {Google::Firestore::V1::Document Document} that was deleted.
193
+ # @!attribute [rw] removed_target_ids
194
+ # @return [Array<Integer>]
195
+ # A set of target IDs for targets that previously matched this entity.
196
+ # @!attribute [rw] read_time
197
+ # @return [Google::Protobuf::Timestamp]
198
+ # The read timestamp at which the delete was observed.
199
+ #
200
+ # Greater or equal to the `commit_time` of the delete.
201
+ class DocumentDelete; end
202
+
203
+ # A {Google::Firestore::V1::Document Document} has been removed from the view of the targets.
204
+ #
205
+ # Sent if the document is no longer relevant to a target and is out of view.
206
+ # Can be sent instead of a DocumentDelete or a DocumentChange if the server
207
+ # can not send the new value of the document.
208
+ #
209
+ # Multiple {Google::Firestore::V1::DocumentRemove DocumentRemove} messages may be returned for the same logical
210
+ # write or delete, if multiple targets are affected.
211
+ # @!attribute [rw] document
212
+ # @return [String]
213
+ # The resource name of the {Google::Firestore::V1::Document Document} that has gone out of view.
214
+ # @!attribute [rw] removed_target_ids
215
+ # @return [Array<Integer>]
216
+ # A set of target IDs for targets that previously matched this document.
217
+ # @!attribute [rw] read_time
218
+ # @return [Google::Protobuf::Timestamp]
219
+ # The read timestamp at which the remove was observed.
220
+ #
221
+ # Greater or equal to the `commit_time` of the change/delete/remove.
222
+ class DocumentRemove; end
223
+
224
+ # A digest of all the documents that match a given target.
225
+ # @!attribute [rw] target_id
226
+ # @return [Integer]
227
+ # The target ID to which this filter applies.
228
+ # @!attribute [rw] count
229
+ # @return [Integer]
230
+ # The total count of documents that match {Google::Firestore::V1::ExistenceFilter#target_id target_id}.
231
+ #
232
+ # If different from the count of documents in the client that match, the
233
+ # client must manually determine which documents no longer match the target.
234
+ class ExistenceFilter; end
235
+ end
236
+ end
237
+ end