Class: Google::Cloud::Firestore::DocumentReference
- Inherits:
-
Object
- Object
- Google::Cloud::Firestore::DocumentReference
- Defined in:
- lib/google/cloud/firestore/document_reference.rb,
lib/google/cloud/firestore/document_reference/list.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.
Defined Under Namespace
Classes: List
Access collapse
-
#col(collection_path) ⇒ CollectionReference
(also: #collection)
Retrieves a collection nested under the document snapshot.
-
#cols(read_time: nil) {|collections| ... } ⇒ Enumerator<CollectionReference>
(also: #collections, #list_collections)
Retrieves an enumerator for the collections nested under the document snapshot.
-
#get ⇒ DocumentSnapshot
Retrieve the document data.
-
#listen {|callback| ... } ⇒ DocumentListener
(also: #on_snapshot)
Listen to this document reference for changes.
-
#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.
140 141 142 143 144 145 146 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 140 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(read_time: nil) {|collections| ... } ⇒ Enumerator<CollectionReference> Also known as: collections, list_collections
Retrieves an enumerator for the collections nested under the document snapshot.
111 112 113 114 115 116 117 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 111 def cols read_time: nil, &block ensure_service! grpc = service.list_collections path, read_time: read_time cols_enum = CollectionReferenceList.from_grpc(grpc, client, path, read_time: read_time).all cols_enum.each(&block) if block_given? cols_enum end |
#create(data) ⇒ CommitResponse::WriteResult
Create a document with the provided data (fields and values).
The operation will fail if the document already exists.
257 258 259 260 261 262 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 257 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.
469 470 471 472 473 474 475 476 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 469 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.
50 51 52 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 50 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.
59 60 61 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 59 def document_path path.split("/", 6).last end |
#get ⇒ DocumentSnapshot
Retrieve the document data.
165 166 167 168 169 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 165 def get ensure_client! client.get_all([self]).first end |
#listen {|callback| ... } ⇒ DocumentListener Also known as: on_snapshot
Listen to this document reference for changes.
195 196 197 198 199 200 201 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 195 def listen &callback raise ArgumentError, "callback required" if callback.nil? ensure_client! DocumentListener.new(self, &callback).start end |
#parent ⇒ CollectionReference
The collection the document reference belongs to.
219 220 221 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 219 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.
336 337 338 339 340 341 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 336 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.
418 419 420 421 422 423 424 425 |
# File 'lib/google/cloud/firestore/document_reference.rb', line 418 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 |