2017-11-09 14 views
2

シンプルに見えますが、期待通りに機能しない基本的なFirestoreのルールを設定するのはまだ苦労しています。下記掲載のシナリオやクエリのためにFirestoreのセキュリティルールを正しく設定する方法

、このデータベースが使用されます。

Database Screen

シナリオ1

は、データベース名を把握することはできませんよ?私はそれがrestaurantsだと思ったが、この前提で、コードの下に作業し、PERMISSION_DENIED例外を取得しませんでした:2つの

コレクションのレストランは、上記の画面に表示されるように、10件の文書を持って

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /{document=**} { 
     allow read, write: if database == "restaurants"; 
    } 
    } 
} 

シナリオ、私はハードそれらの10をコード化し、それらを読み取りおよび書き込み以下のように、しかし、そのは動作していない、と同じPERMISSION_DENIED例外を取得することができました:

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /{document=**} { 

    allow read : if document in ['2uFMIc2BSH6oslxEABpB','8GMNVxVUb1HzRAk2QmmX', 
     'AryyMURod8AeWAfBVavF','AvnpKGMeUWDSfowFLpwa','H0qi7gI8WmSVobu19G49', 
     'H2xhfoj0Rn75BH9nnbuI','NRfgppqWRfj3DtHDlft4','R9gZ0hTxCPXwSeV2prNV', 
     'YgXXwndeIfZx6rUhdlc4','v22FlL7LBBY851N8sIvQ'] ; 

     allow write : if document in ['2uFMIc2BSH6oslxEABpB','8GMNVxVUb1HzRAk2QmmX', 
     'AryyMURod8AeWAfBVavF','AvnpKGMeUWDSfowFLpwa','H0qi7gI8WmSVobu19G49', 
     'H2xhfoj0Rn75BH9nnbuI','NRfgppqWRfj3DtHDlft4','R9gZ0hTxCPXwSeV2prNV', 
     'YgXXwndeIfZx6rUhdlc4','v22FlL7LBBY851N8sIvQ'] ; 


    } 
    } 
} 

これらの2はあまり実用的なシナリオではないかもしれませんが、私の理解のためにそれ以上です。あなたの最初の例で

答えて

1
  1. databaseはおそらく「(デフォルト)」のようなもので、データベースの名前です。

  2. 2番目の例では、documentがドキュメントの完全なパスになります。それはその=**ワイルドカードが行うことです - それはワイルドカードの "私のパスの中のすべてのもの"です。

    service cloud.firestore { 
        match /databases/{database}/documents { 
        match /restaurants/{restaurantID} { 
         allow read, write: if true; 
        } 
        } 
    } 
    

    :だから、それはあなたがこのような何かをしたい、あなたが言うルールを作成したい場合は、「ユーザーは自分のレストランのコレクションに任意の文書を読むことができる」restaurants/2uFMIc2BSH6oslxEABpB

のようなものに等しくなりますよ個々のレストランのドキュメントIDで興味深いことをしたい場合、おそらくこのような何かをしたいと思うでしょう:

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /restaurants/{restaurantID} { 
     allow read, write: if restaurantID == '2uFMIc2BSH6oslxEABpB; ; 
    } 
    } 
} 
関連する問題