Docs / Strand / connectors/gcp-firestore

Google Firestore

Direction: Read / Write | Type: gcp.firestore

Google Firestore connector for NoSQL document database operations: create, read, and query documents.

Required Permissions#

The service account must have the following IAM permissions (or predefined roles):

Operation Required Permissions Predefined Role
set datastore.entities.create, datastore.entities.update Cloud Datastore User
get datastore.entities.get Cloud Datastore Viewer
query datastore.entities.list, datastore.entities.get Cloud Datastore Viewer
All All of the above Cloud Datastore User
Tip: The Cloud Datastore User role covers all read and write operations. Use Cloud Datastore Viewer for read-only workflows.

Operations#

Operation Direction Description
set Write Create or overwrite a document
get Read Retrieve a document by ID
query Read Query documents in a collection

Connector Configuration#

Field Required Default Description
Authentication Type No api_key Uses explicit credentials (the fields below).
Project ID Yes - Google Cloud project ID
Credentials JSON Conditional - Service account JSON credentials (encrypted). Required when Authentication Type is api_key
Database ID No (default) Firestore database ID

Node Configuration#

Field Required Description
Operation Yes set, get, or query
Collection Yes Firestore collection name
Document ID Depends Required for get, optional for set (auto-generated if omitted)
Limit No Query result limit (default: 10)

Output#

set#

json

{
  "success": true,
  "status": "completed",
  "data": {
    "collection": "users",
    "document_id": "abc123"
  },
  "service": "gcp.firestore",
  "operation": "set"
}

get#

json

{
  "success": true,
  "status": "completed",
  "data": {
    "collection": "users",
    "document_id": "abc123",
    "document": {"name": "John", "email": "john@example.com"}
  },
  "service": "gcp.firestore",
  "operation": "get"
}

Access the document:

jinja2

{{ payload.data.document.name }}
{{ payload.data.document.email }}

query#

json

{
  "success": true,
  "status": "completed",
  "data": {
    "collection": "users",
    "results": [{"name": "John"}, {"name": "Jane"}],
    "count": 2
  },
  "service": "gcp.firestore",
  "operation": "query"
}

Example#

Connector Setup:

json

{
  "project_id": "my-gcp-project",
  "credentials_json": "{...service account JSON...}"
}

Node Configuration (write):

Node Configuration (read):

Node Configuration (query):