2017-06-06 14 views
1

私はこの構造体に複数列のインデックスプロパティfilter_activeを持っています。複数列のプロパティの検証Firebaseデータベースのルール

"books": { 
    "435085rfddsfiou4r80": { 
     "name": "Harry Potter 1" 
    } 
} 

"review": { 
    "540398fsdo9043": { 
     "filter_active": "true|435085rfddsfiou4r80|false" 
     "active": true, 
     "archived": false, 
     "book_id": "435085rfddsfiou4r80" 
     "review": "good book" 
    } 
} 

は今、私はfilter_activeプロパティを検証するためにセキュリティルールを使用します。書籍が書籍ノードに存在するかどうかを確認する必要があります。また、フィルタのブックIDは、レビューオブジェクトのbook_idと同じでなければなりません。

Firebaseデータベースルールには、分割方法などはありません。また、動的正規表現を作成しようとしましたが、これは不可能だと思います。

とにかくこの問題を解決できますか?

答えて

0

filter_activeの不要なテキストが常に少数の既知の単語または文字である場合、それらはreplace()を繰り返し使用することで除去できます。例えば、truefalse、および|を排除する:

root.child('books').child(newData.child('filter_active').val() 
     .replace('true','').replace('false','').replace('|','')).exists() 

newData.child('filter_active').val().replace('true','') 
    .replace('false','').replace('|','') 

あなたはその結果のキーで本の存在を確認することができます

関連する問題