Skip to content

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.