Skip to main content

Firestore Collections

Reference of primary Firestore collections used by the application.

Core entities

CollectionDocument IDKey fields
usersFirebase Auth UIDemail, role, department, branch, portalAccess
assetsAuto-generatedname, serialNumber, status, assignedTo, purchaseCost
assetRequestsAuto-generatedstatus, requestedBy, requestedFor, workflowStage
departmentsAuto-generatedname, branch, zone, location
locationsAuto-generatedname, city, branchType, status
organizationsAuto-generatedname, type

Site map

CollectionDocument ID patternKey fields
siteMapNodesfloor-{locationId}-{zoneSlug}-{n}type, zoneName, floorNumber, floorPlan

Node types: floor (primary), legacy building/zone cleaned up automatically.

Settings documents

PathPurpose
settings/rolePermissionsRole & permission matrix
settings/mapDesignerSite map user overrides
settings/authSSO provider config
settings/securityPassword policy, session timeout
settings/assetRequestWorkflowWorkflow stages & notifications
settings/authEmailTemplatesEmail template content
settings/relianceSeedDemo seed status flag
settings/adminFirebase backend config (restricted read)

Audit & messaging

CollectionPurpose
auditLogsActivity log entries
userNotifications/{uid}/itemsIn-app notifications
userMail/{uid}/messagesIn-app mail
mailSystem mail queue (server-side, client read blocked)

Security & auth

CollectionPurpose
userMfa/{uid}MFA enrollment state
passkeyCredentials/{id}WebAuthn credentials
passkeyLookup/{emailKey}Email → UID lookup for passkeys
userPasskeys/{uid}/itemsUser passkey registry

Automation

CollectionPurpose
scannerIngestionRecordsBarcode/RFID scans
networkDiscoveryJobsNetwork scan jobs
webhooksWebhook configs

Signatures

CollectionPurpose
signatureSessionsMobile/agreement signing sessions

Subcollections pattern

userNotifications/{userId}/items/{notificationId}
userMail/{userId}/messages/{messageId}
userPasskeys/{userId}/items/{credentialId}

Indexes

Defined in firestore.indexes.json. Deploy with:

firebase deploy --only firestore:indexes

Missing indexes appear as errors in browser console with a direct link to create them in Firebase Console.