Purpose
The Storage module browses and manages Firebase Storage buckets for emulator and production targets. It also supports Auth profile photo upload and thumbnail workflows.
Browser Output
The BROWSER output mode is the primary file navigation surface. Users can browse folders/files, switch between list and grid layouts, sort entries by name, size, or updated date, inspect metadata, preview supported files, and run object actions.
Additional output modes:
JSON: raw listing/action payloadsLOGS: Storage API and app logs
Actions
Supported workflows:
- browse bucket paths
- sort by name, size, or updated date
- switch between list and grid views
- upload files
- download files
- delete files
- copy URL
- generate signed URL with configurable expiration
- open URL
- show thumbnail preview when an object is image-compatible
- integrate profile photo upload from Auth
Emulator and Production
Storage uses the selected project and Storage emulator endpoint when configured. Production object mutations must be explicit and visible. Production signed URLs use linked service account JSON credentials for V4 signing; emulator links generate local emulator download URLs with the selected expiration for deterministic UI coverage.
Safety
- Read-only projects block uploads and deletes.
- Pro access gates Storage writes.
- Destructive deletes show the target project/environment and object path.
- Long uploads/downloads/deletes should report progress through Tasks where applicable.
Source Anchors
Sources/FirestructApp/Features/Storage/UI/StorageModuleView.swiftSources/FirestructApp/Features/Storage/Services/AppModel+StorageActions.swiftSources/FirestructApp/Features/Storage/Model/StorageStore.swiftSources/FirestructCore/StorageService.swift