2016-08-01 10 views
1

Firebase & iOSを使用していて、ユーザーがコメントを送信しようとしたときに検証しようとしています。ここで Firebaseの検証ルールが有効でない

は私のルールです:私は ".validate"部分を削除したときだったに成功掲載されている enter image description here

コメント:

{ 
    "rules": { 
    "comments": { 
     ".read": true, 
     ".write": "auth.uid != null", 
     "$comment_id": { 
     ".validate": "newData.isString() && newData.val().length < 100" 
     } 
    } 
    } 
} 

は、ここに私のデータベース構造です。私は$comment_idブロックの外側に".validate": "newData.isString() && newData.val().length < 100"を置いてみましたが、これでも失敗しました。私はコメントを追加しようとする

はかかわらず、私はシミュレータからこのエラーを取得する: enter image description here

".validate"の作業ではないのはなぜ?私は何が欠けていますか?

答えて

1

データパスは/comments/$comment_id/commentです。あなたの妥当性検査規則は、その最後のcommentに対応していません。

{ 
    "rules": { 
    "comments": { 
     ".read": true, 
     ".write": "auth.uid != null", 
     "$comment_id": { 
     "comment": { 
      ".validate": "newData.isString() && newData.val().length < 100" 
     } 
     } 
    } 
    } 
} 

これらのルールは機能します。しかし、私はおそらくcommentノードを削除するためにデータ構造を更新するでしょう、それはどんな値も追加しないからです。

関連する問題