Connector for Firestore

Workflows connector that defines the built-in function used to access Firestore within a workflow.

Documentation pages that include this code sample

To view the code sample used in context, see the following documentation:

Code sample

YAML

# This workflow demonstrates how to use the Firestore connector.
# The workflow first creates a Firestore document, then retrieves the document,
# and exports the document to a Google Cloud Storage bucket.
# The document is deleted eventually.
# Expected successful output: "SUCCESS"

- init:
    assign:
    - project_id: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
    - collection: "a-dummy-collection"
    - document: "a-dummy-document"
- create_document:
      call: googleapis.firestore.v1.projects.databases.documents.createDocument
      args:
        collectionId: ${collection}
        parent: ${"projects/" + project_id + "/databases/(default)/documents"}
        query:
          documentId: ${document}
        body:
          fields:
            fieldA:
              stringValue: abc
            fieldB:
              integerValue: 123
- get_document:
    call: googleapis.firestore.v1.projects.databases.documents.get
    args:
      name: ${"projects/" + project_id + "/databases/(default)/documents/" + collection + "/" + document}
    result: got
- check:
    switch:
    - condition: ${got.fields.fieldA.stringValue == "abc" AND int(got.fields.fieldB.integerValue) == 123}
      next: export
- failed:
    raise: ${"got unexpected document" + "fieldA:" + got.fields.fieldA.stringValue + " fieldB:" + string(got.fields.fieldB.integerValue)}
- export:
    call: googleapis.firestore.v1.projects.databases.exportDocuments
    args:
      name: ${"projects/" + project_id + "/databases/(default)"}
      body:
        outputUriPrefix: "gs://a_dummy_bucket"  # Make sure this bucket exists.
        collectionIds:
        - ${collection}
- drop:
    call: googleapis.firestore.v1.projects.databases.documents.delete
    args:
      name: ${"projects/" + project_id + "/databases/(default)/documents/" + collection + "/" + document}
- the_end:
    return: "SUCCESS"

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.