Connector for Firestore

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

Explore further

For detailed documentation that includes this code sample, see the following:

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: "example-collection"
      - document: "example-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://example_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.