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 api_key for explicit credentials, role to use Application Default Credentials (ADC)
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
Role-Based Authentication

When using role authentication, the connector uses Application Default Credentials (ADC) from the host environment. No explicit service account JSON is needed.

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)
Filters No Query filters (for query operation)
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": "[email protected]"}
  },
  "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...}"
}

Connector Setup (role-based):

json

{
  "auth_type": "role",
  "project_id": "my-gcp-project"
}

Node Configuration (write):

Node Configuration (read):

Node Configuration (query):