2017-10-24 15 views
4

Google Cloud Firestoreデータベースのセキュリティルールを設定しています。私は、そのタイムスタンプの値は、次のロジックを使用して、過去に30日以上である場合にのみ、ドキュメントの削除を許可しようとしています:Cloud Firestoreのセキュリティルールのデバッグ

allow delete: if 
    resource.data.locked == false 
    && (request.time - resource.data.timeStamp).seconds > 2592000; 

私はこれをしようとすると、私はError: Missing or insufficient permissionsを取得します。だから、最初の質問 - 私はこの間違っているのだろうか、または私のロジックに欠陥がありますか?

また、追加の質問として、ルールをデバッグする方法がありますか?おそらく、console.log相当のもので、条件付きルールの結果が適用されているのを見て、タイムスタンプの代わりに文字列を送信していないかどうか、あるいはそれに似ていることを確認できますか?

私はrequest.timeは「今」であることを仮定していると私のresource.data.timeStampは正しいことをし、その1つのマイナス、他のリターンはDurationとそのthatDuration.secondsnumberを返しているが、私はこれに初心者くさいとそれらの仮定のいずれかです間違っている可能性があり、これらの値が処理されているのを見ることができるのは素晴らしいことです。

乾杯すべて

+0

あなたは 'duration.value()' [doc](https://cloud.google.com/firestore/docs/reference/security/#duration) – Hareesh

+4

を試しましたか?このことがデバッガを取得するまで待ちません – DarkNeuron

答えて

0

私がチェックされていないです、この

request.time < resource.data.timeStamp + duration.value(30, "d"); 

そして、あなたの2番目の質問のようなものを試してみてください、私は知りません。リアルタイムデータベースのようなシミュレータはありません。まだベータ版を覚えています。

関連する問題