2017-07-03 27 views
0

私はクラウドストレージリファレンス用Firebaseセキュリティルールにレイアウト例に従うことをしようとしている:Firebaseセキュリティルール()例エラー

https://firebase.google.com/docs/reference/security/storage/

私は&のために例をコピー&ペースト私の保管ルールにsplit()、それがコンパイルされません/私は保存してみましょう:

与えられた正規表現に基づいて文字列を分割し、文字列のリストを返します。 Google RE2の構文を使用します。

// Allow files named "file.*" to be uploaded 
match /{fileName} { 
    allow write: if fileName.split('.*\..*')[0] == 'file' 
} 

私が取得エラー:私の人生のために Unexpected '.'.

、私は実行するために提供された例コードを取得することはできません、また私は、変更を加えることができますし、期待通りに正規表現が仕事を得ます。

Allow files named "file.*" to be uploadedについてご意見がありますか?

答えて

2

ルールには\がありません。これを試してみてください:

通常、正規表現を使って作業する場合、最初にチェックするのはバックスラッシュです。異なるシステムではエスケープのためにバックスラッシュが使用されます(場合によっては)エスケープするためには二重にする必要があります。

+1

フランク、迅速な対応に感謝します。あなたの正規表現 'split( '。* \\ .. *')[0]'例はまだ私のためには機能しませんでしたが、二重エスケープに関するあなたのコメントは私を正しい道に導きました。あなたが 'split( '\\。')[0]'を実行して実際のファイル名を取得してくれたようです。私は何かを逃しているのでしょうか?それとも、ドキュメンテーションの例が少しありますか?変更直後にテストしたときに偽のネガティブもありました。ルールがノードに到達するか、キャッシュを削除する伝播遅延があるようですか? – briannyc

+1

@briannyc:遅延に関するあなたの見解は正しいです。 [セキュリティルールガイド](https://firebase.google.com/docs/storage/security/start#edit_rules)に記載されています。_RulesはすぐにCloud Storageサーバーにアップロードされますが、ライブになるまでに最大5分かかることがあります_ 。 –

関連する問題