2017-06-06 36 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,並且|

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

然後,您可以檢查一本書的存在與得到的關鍵:

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