【问题标题】:Validate multicolumn property Firebase Database Rules验证多列属性 Firebase 数据库规则
【发布时间】:2017-06-07 05:32:12
【问题描述】:

我在这个结构中有一个多列索引属性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 数据库规则中没有拆分方法。此外,我尝试创建一个动态正则表达式,但我认为这是不可能的。

有没有办法解决这个问题?

【问题讨论】:

    标签: firebase firebase-realtime-database firebase-security


    【解决方案1】:

    如果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()
    

    【讨论】:

      猜你喜欢
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 2020-05-10
      • 2018-08-25
      • 2021-01-22
      • 2020-04-25
      相关资源
      最近更新 更多