Class: Google::Cloud::Firestore::DocumentReference
- Inherits:
-
Object
- Object
- Google::Cloud::Firestore::DocumentReference
- Defined in:
- lib/google/cloud/firestore/document_reference.rb
Overview
DocumentReference
A document reference object refers to a document location in a Cloud Firestore database and can be used to write or read data. A document resource at the referenced location may or may not exist.
Access collapse
-
#col(collection_path) ⇒ CollectionReference
(also: #collection)
Retrieves a collection nested under the document snapshot.
-
#cols {|collections| ... } ⇒ Enumerator<CollectionReference>
(also: #collections)
Retrieves a list of collections nested under the document snapshot.
-
#get ⇒ DocumentSnapshot
Retrieve the document data.
-
#parent ⇒ CollectionReference
The collection the document reference belongs to.
Modifications collapse
-
#create(data) ⇒ CommitResponse::WriteResult
Create a document with the provided data (fields and values).
-
#delete(exists: nil, update_time: nil) ⇒ CommitResponse::WriteResult
Deletes a document from the database.
-
#set(data, merge: nil) ⇒ CommitResponse::WriteResult
Write the provided data (fields and values) to the document.
-
#update(data, update_time: nil) ⇒ CommitResponse::WriteResult
Update the document with the provided data (fields and values).
Instance Method Summary collapse
-
#document_id ⇒ String
The document identifier for the document resource.
-
#document_path ⇒ String
A string representing the path of the document, relative to the document root of the database.
Instance Method Details
#col(collection_path) ⇒ CollectionReference Also known as: collection
Retrieves a collection nested under the document snapshot.
119 120 121 122 123 124 125 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 119 def col collection_path if collection_path.to_s.split("/").count.even? raise ArgumentError, "collection_path must refer to a collection." end CollectionReference.from_path "#{path}/#{collection_path}", client end |
#cols {|collections| ... } ⇒ Enumerator<CollectionReference> Also known as: collections
Retrieves a list of collections nested under the document snapshot.
90 91 92 93 94 95 96 97 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 90 def cols ensure_service! return enum_for(:cols) unless block_given? collection_ids = service.list_collections path collection_ids.each { |collection_id| yield col(collection_id) } end |
#create(data) ⇒ CommitResponse::WriteResult
Create a document with the provided data (fields and values).
The operation will fail if the document already exists.
203 204 205 206 207 208 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 203 def create data ensure_client! resp = client.batch { |b| b.create self, data } resp.write_results.first end |
#delete(exists: nil, update_time: nil) ⇒ CommitResponse::WriteResult
Deletes a document from the database.
417 418 419 420 421 422 423 424 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 417 def delete exists: nil, update_time: nil ensure_client! resp = client.batch do |b| b.delete self, exists: exists, update_time: update_time end resp.write_results.first end |
#document_id ⇒ String
The document identifier for the document resource.
47 48 49 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 47 def document_id path.split("/").last end |
#document_path ⇒ String
A string representing the path of the document, relative to the document root of the database.
56 57 58 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 56 def document_path path.split("/", 6).last end |
#get ⇒ DocumentSnapshot
Retrieve the document data.
144 145 146 147 148 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 144 def get ensure_client! client.get_all([self]).first end |
#parent ⇒ CollectionReference
The collection the document reference belongs to.
165 166 167 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 165 def parent CollectionReference.from_path parent_path, client end |
#set(data, merge: nil) ⇒ CommitResponse::WriteResult
Write the provided data (fields and values) to the document. If the
document does not exist, it will be created. By default, the provided
data overwrites existing data, but the provided data can be merged
into the existing document using the merge
argument.
If you're not sure whether the document exists, use the merge
argument to merge the new data with any existing document data to
avoid overwriting entire documents.
282 283 284 285 286 287 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 282 def set data, merge: nil ensure_client! resp = client.batch { |b| b.set self, data, merge: merge } resp.write_results.first end |
#update(data, update_time: nil) ⇒ CommitResponse::WriteResult
Update the document with the provided data (fields and values). The provided data is merged into the existing document data.
The operation will fail if the document does not exist.
366 367 368 369 370 371 372 373 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 366 def update data, update_time: nil ensure_client! resp = client.batch do |b| b.update self, data, update_time: update_time end resp.write_results.first end |