2017-11-21 1 views
0

現在の日付が文書内のタイムスタンプ値を超えた後に、文書に読み取り権限を付与するFireStoreルールを作成します。文書内のタイムスタンプ値に基づいてFireStoreルールを読み込めるようにする

これはブログWebアプリケーション用です。 E.Gブロガーは、ブログ投稿を特定の日付に公開するように設定しています。

これはうまくいくはずですが、それはうまくいかないでしょう。

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

私は何が欠けていますか?

+0

あなたの日付を保存する方法は? – Hareesh

答えて

3

ここfirebaser

私はしばらく前に同じことを試みたが、それは現在可能ではありませんが分かりました。

で、特定のドキュメントのプロパティに基づいてそのドキュメントの読み取りを許可/拒否できます。

です。ドキュメント内のプロパティに基づいてドキュメントをフィルタリングするクエリを許可することは可能ですが、現在はrequest.authに基づいてのみ可能です。

これは、残念ながら現在のフィルタはセキュリティルールでは実装できません。チャットするにはfile a feature requestをお勧めします。

+0

フランクの応答に感謝します。私は、機能要求 – Rudi

+0

に日付ベースのルールの運があれば書いていますか? –

0

に> <を切り替えてみてください。

request.timeはドキュメントにアクセスする時間になりますが、resource.data.dateはドキュメントの作成タイムスタンプになります。

は、セキュリティルールのためにこれを使用してみてください:

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

duration.time(4、3、2、1)、3分、2秒、1ナノ秒の持続時間が4時間を作成します。それを有効にするため、セキュリティルールを保存した後いつかを待つために覚えていますか https://firebase.google.com/docs/firestore/reference/security/#timestamp

詳しい情報はで見つけることができます!

関連する問題