Unsere Datenbankstruktur sieht wie folgt aus:Firestor Sicherheitsregeln, verschachteltes Feld
trips
12345
toArea
radius: 150
name: "citycenter"
54321
toArea
radius: 250
name: "main street"
Wir haben versucht, einige Regeln für Lese von Dokument zu erstellen:
match /chats/{trip} {
match /messages/{message} {
allow read, write: if get(/databases/$(database)/documents/trips/$(trip)).data.toArea != null
}
}
Es funktioniert gut, ist
aber die nächsten Regeln funktionieren nicht:
allow read, write: if get(/databases/$(database)/documents/trips/$(trip)).data.toArea != null
allow read, write: if get(/databases/$(database)/documents/trips/$(trip)).data.toArea.radius != null
allow read, write: if get(/databases/$(database)/documents/trips/$(trip)).data.toArea.radius == null
allow read, write: if get(/databases/$(database)/documents/trips/$(trip)).data.toArea["radius"] == null
allow read, write: if get(/databases/$(database)/documents/trips/$(trip)).data.toArea["radius"] != null
allow read, write: if get(/databases/$(database)/documents/trips/$(trip)).data["toArea.radius"] == null
allow read, write: if get(/databases/$(database)/documents/trips/$(trip)).data["toArea.radius"] != null
Ich verstehe wirklich nicht, was falsch damit ist, wie zwei entgegengesetzte Regeln (== null /! = Null) nicht funktionieren könnten. Wie können wir mit Feldern toArea.radius in Regeln verwalten?
versuchen Sie '.data.toArea.data.radius' – Hareesh
Wir haben derzeit ein Problem mit verschachtelten Eigenschaften in Regeln, das ist fast definitiv nicht deine Schuld. Wir arbeiten daran, so schnell wie möglich eine Lösung bereitzustellen, danke für Ihre Geduld! –
würde es '.data.field.data' konsistent sein? – iiylll