2017-11-21 1 views
0

Ich möchte eine FireStore-Regel erstellen, die Leseberechtigungen für Dokumente vergibt, nachdem das aktuelle Datum einen Zeitstempelwert im Dokument überschritten hat.Erlaube das Lesen von FireStore-Regeln basierend auf dem Timestamp-Wert in Dokument

Dies ist für eine Blog-Webanwendung. E.G ein Blogger stellt einen Blogeintrag ein, der an einem bestimmten Datum der Öffentlichkeit zugänglich sein soll.

Aus dem Lesen der Dokumentation sollte dies funktionieren, aber es nicht.

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /Articles/{article}{ 
    allow read: if request.time.date() < resource.data.date 
    } 
    } 
} 

Was ich vermisse ??

+0

Wie speichern Sie Ihr Datum? – Hareesh

Antwort

3

firebaser hier

habe ich versucht, die gleiche Sache eine Weile her, und fand heraus, es derzeit nicht möglich ist.

Es ist möglich zu erlauben/zu lesen auf ein bestimmtes Dokument basierend auf einer Eigenschaft dieses Dokuments zu verweigern/verweigern.

Es ist möglich, eine Abfrage zu ermöglichen, die in diesem Dokument Dokumente basierend auf einer Eigenschaft filtert, aber zur Zeit ist das nur möglich, basierend auf request.auth.

Dies bedeutet, dass Ihr Filter derzeit leider nicht mit Sicherheitsregeln implementiert werden kann. Ich empfehle Ihnen, zu chimmen.

+0

Danke für die Antwort Frank. Ich werde eine Feature-Anfrage – Rudi

+0

Glück mit datumsbasierten Regeln? –

0

versuchen, die < auf>.

request.time ist der Zeitpunkt des Zugriffs auf das Dokument, während resource.data.date der Erstellungszeitstempel des Dokuments sein muss.

Versuchen Sie es mit dieser für Ihre Sicherheitsregeln:

allow read: if request.time > (resource.data.timestampPropertyName + duration.time(1, 0, 0, 0)); 

duration.time (4, 3, 2, 1) wird erstellen 4 Stunden, 3 Minuten, 2 Sekunden, einer Nanosekunde Dauer.

Weitere Informationen finden Sie unter: https://firebase.google.com/docs/firestore/reference/security/#timestamp

Sie für einige Zeit nach dem Speichern der Sicherheitsregeln zu warten, denken Sie daran, um die Änderung zu übernehmen!

Verwandte Themen