Query Google Cloud Firestore directly from DuckDB using SQL
Maintainer(s):
BorisBesky
Installing and Loading
INSTALL fire_duck_ext FROM community;
LOAD fire_duck_ext;
Added Functions
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| firestore_scan | table | Read all documents from a Firestore collection or collection group. | NULL | [SELECT * FROM firestore_scan('users');] |
| firestore_insert | table | Insert documents into a Firestore collection from a subquery. | NULL | [CALL firestore_insert('users', (SELECT name, age FROM read_csv('new_users.csv')));] |
| firestore_update | table | Update fields on a single Firestore document. | NULL | [CALL firestore_update('users', 'user123', 'status', 'verified');] |
| firestore_delete | table | Delete a single Firestore document. | NULL | [CALL firestore_delete('users', 'user123');] |
| firestore_update_batch | table | Batch update multiple Firestore documents by ID list. | NULL | [CALL firestore_update_batch('users', ['id1', 'id2'], 'status', 'reviewed');] |
| firestore_delete_batch | table | Batch delete multiple Firestore documents by ID list. | NULL | [CALL firestore_delete_batch('users', ['id1', 'id2']);] |
| firestore_array_union | table | Add elements to an array field without duplicates. | NULL | [CALL firestore_array_union('users', 'user123', 'tags', ['vip', 'active']);] |
| firestore_array_remove | table | Remove elements from an array field. | NULL | [CALL firestore_array_remove('users', 'user123', 'tags', ['inactive']);] |
| firestore_array_append | table | Append elements to an array field (allows duplicates). | NULL | [CALL firestore_array_append('users', 'user123', 'log', ['event1']);] |
| firestore_clear_cache | table | Clear the cached schema for all or a specific collection. | NULL | [CALL firestore_clear_cache();] |
| firestore_connect | table | Set the session-scoped Firestore database for subsequent queries. | NULL | [CALL firestore_connect('analytics-db');] |
| firestore_disconnect | table | Clear the session-scoped Firestore database override. | NULL | [CALL firestore_disconnect();] |
Overloaded Functions
This extension does not add any function overloads.
Added Types
This extension does not add any types.
Added Settings
| name | description | input_type | scope | aliases |
|---|---|---|---|---|
| firestore_schema_cache_ttl | Schema cache TTL in seconds (0 to disable caching) | BIGINT | GLOBAL | [] |