我在这个结构中有一个多列索引属性filter_active
。
"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 :(得分:0)
如果filter_active
中不需要的文字总是少量已知字词或字符,则可以通过重复使用replace()来消除它们。例如,要删除true
,false
和|
:
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()