0

Ich richte eine Firebase-Datenbank für einen Buchungsprozess ein. Jeder Benutzer kann seine eigenen Buchungen lesen und schreiben. Die Regeln für diese unter:Firebase-Sicherheitsregeln: Alle Einzelobjekte lesen?

"bookings": { 
     //user can only read/write their bookings 
     "$user": { 
      ".read": "auth.uid === $user", 
      ".write": "auth.uid === $user", 
     } 
     } 

Wenn ein Benutzer eine Buchung vornehmen geht, müssen sie die nicht verfügbaren Termine in einem Kalender zu sehen. Aus diesem Grund müssen sie technisch in der Lage sein, die Ankunfts- und Abflugeigenschaften eines Buchungsknotens zu lesen, sodass die App den Kalender mit vorhandenen Buchungen füllen und nicht verfügbare Daten markieren kann.

Natürlich müssen alle anderen Buchungsinformationen dabei privat bleiben und nur für den Benutzer zugänglich sein, der sie erstellt hat. Vielleicht ist der Versuch, die einzelne Eigenschaft zu lesen, nicht die richtige Lösung?

Antwort

1

denke ich, eine geeignete Datenstruktur dies sein könnte:

{ 
    "bookings": { 
    "rooms": { 
     "room1": { 
     "booking1": { 
      "fromDate": timestamp, 
      "toDate": timestamp, 
      "privateData": { 
      "userID": "user1" 
      } 
     } 
     } 
    } 
    }, 
    "users": { 
    "user1": { 
     "name": "Devid" 
     "bookings": { 
     "room1": { 
      "booking1": true 
     } 
     } 
    } 
    } 
} 

Damit Ihre Regeln Sicherheit jedem Benutzer erlauben kann nur fromDate und toDate

lesen
"bookings": { 
    //user can only read/write their bookings 
    "$roomID": { 
    "$bookingID": { 
     "fromDate": { 
     ".read": "auth.uid !== null", 
     ".write": "newData().userID === auth.uid" 
     } 
    } 
    } 
} 
+0

Hallo Josh, nicht hilft das? :) –

Verwandte Themen