Wichtiger Konfigurationshinweis

Die Verbindung zur Datenbank konnte nicht hergestellt werden. Das liegt daran, dass die Firebase-Konfigurationsdaten in der index.html-Datei noch nicht eingetragen wurden.

So beheben Sie das Problem:
1. Öffnen Sie Ihr Firebase-Projekt in der Firebase-Konsole.
2. Gehen Sie zu den Projekteinstellungen (Zahnrad-Symbol oben links).
3. Scrollen Sie nach unten zum Abschnitt "Ihre Apps".
4. Suchen Sie nach einem Objekt namens firebaseConfig.
5. Kopieren Sie dieses Objekt und ersetzen Sie den Platzhalter in der index.html-Datei (direkt unter diesem Hinweis) damit.
6. Datenbank auswählen: Wenn Sie eine andere Datenbank als die Standard-Datenbank nutzen (z.B. "inventardatenbank"), fügen Sie databaseId: "inventardatenbank" zum Config-Objekt hinzu.
7. WICHTIG: Aktivieren Sie unter "Authentication" → "Sign-in method" die "E-Mail/Password"-Anmeldemethode.
8. NUTZER ANLEGEN: Fügen Sie Nutzer in der "Authentication"-Sektion hinzu. Erstellen Sie dann für jeden Nutzer einen Eintrag in der "Firestore Database" in einer Collection namens users. Das Dokument-ID muss die UID des Nutzers sein. Fügen Sie zwei Felder hinzu: email (die E-Mail-Adresse des Nutzers) und role (mit dem Wert admin, editor, oder viewer).
9. SICHERHEITSREGELN AKTUALISIEREN: Gehen Sie in der "Firestore Database" zum Tab "Regeln". Ersetzen Sie die vorhandenen Regeln durch die folgenden, um angemeldeten Benutzern Lese- und Schreibzugriff zu gewähren:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      // Allow users to read their own doc to get their role
      allow read: if request.auth != null && request.auth.uid == userId;
      // Allow admins to manage all user docs
      allow read, list, write: if request.auth != null && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin';
    }

    // Allow logged-in users to read all items
    match /museumItems/{document=**} {
      allow read: if request.auth != null;
    }

    // Allow only users with the role 'admin' or 'editor' to create, update, or delete items
    match /museumItems/{itemId} {
      allow write: if request.auth != null && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role in ['admin', 'editor'];
    }
    
    // Rules for collections
    match /collections/{collectionId} {
      // Users with write permissions ('admin', 'editor') can create collections, and they must set themselves as the owner.
      allow create: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role in ['admin', 'editor']
                    && request.auth.uid == request.resource.data.userId;
      
      // Only the owner of the collection can read, update, or delete it.
      allow read, update, delete: if request.auth.uid == resource.data.userId;
    }

    // Allow any logged-in user to create a log entry for their own actions
    match /activityLog/{logId} {
      allow create: if request.auth != null && request.resource.data.userId == request.auth.uid;
      // Allow only admins to read the full activity log collection
      allow list: if request.auth != null && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin';
    }
  }
}