Database Service (firestoreService.js)
Denne filen håndterer all kommunikasjon med Cloud Firestore. Den inneholder funksjoner for å lese, skrive, oppdatere og lytte til data.
Importer
import { db } from './firebase';
import {
collection, doc, getDoc, getDocs, setDoc, updateDoc, deleteDoc,
query, where, orderBy, limit, onSnapshot
} from 'firebase/firestore';
Bedrifter (Companies)
getCompany(companyId)
Henter data for en spesifikk bedrift.
* Input: companyId (string)
* Returnerer: Objekt med bedriftsdata eller null.
createCompany(companyId, companyData)
Oppretter en ny bedriftsprofil.
* Input: companyId (string), companyData (object)
* Handling: Lagrer data og setter createdAt og updatedAt.
updateCompany(companyId, updates)
Oppdaterer en eksisterende bedriftsprofil.
* Input: companyId (string), updates (object)
* Handling: Oppdaterer felter og setter ny updatedAt.
subscribeToCompany(companyId, callback)
Lytter til endringer på en bedriftsprofil i sanntid.
* Input: companyId (string), callback (function)
* Returnerer: Unsubscribe-funksjon.
Klubber (Clubs)
getClub(clubId)
Henter data for en spesifikk klubb.
createClub(clubId, clubData)
Oppretter en ny klubbprofil.
updateClub(clubId, updates)
Oppdaterer en eksisterende klubbprofil.
subscribeToClub(clubId, callback)
Lytter til endringer på en klubbprofil i sanntid.
Medlemmer (Members)
getMember(memberId)
Henter data for et spesifikt medlem.
createMember(memberId, memberData)
Oppretter en ny medlemsprofil.
updateMember(memberId, updates)
Oppdaterer en medlemsprofil.
subscribeToMember(memberId, callback)
Lytter til endringer på en medlemsprofil i sanntid.
Oppdrag (Missions)
getMissions(filters)
Henter en liste med oppdrag basert på filtre.
* Input: filters (object) - Kan inneholde status, location, limit.
* Returnerer: Array av oppdragsobjekter.
getMission(missionId)
Henter et spesifikt oppdrag.
createMission(missionData)
Oppretter et nytt oppdrag.
* Input: missionData (object)
* Handling: Genererer ny ID, setter status til 'open', og lagrer tidsstempler.
* Returnerer: ID til det nye oppdraget.
updateMission(missionId, updates)
Oppdaterer et oppdrag.
deleteMission(missionId)
Sletter et oppdrag.
subscribeToMissions(filters, callback)
Lytter til en liste med oppdrag i sanntid.
* Input: filters (object), callback (function)
* Bruk: Brukes i MissionBoard og CompanyDashboard for å vise live oppdateringer.