【问题标题】:Firebase Database Send information just for validation and not for saving in the databaseFirebase 数据库发送信息仅用于验证而不是保存在数据库中
【发布时间】:2017-04-14 17:51:54
【问题描述】:

我想知道是否可以将数据发送到仅用于验证而不是保存的 firebase 数据库。 例如,如果我发送 {"myauth" : "abc123"} 验证规则将只检查 newdata.child("myauth").equals("abc123") 是否没有保存到数据库中。喜欢

    {
  "rules": {
    ".validate": "newData.child('myauth').val() === 'abc123'",
     ".read": true,
    ".write": true      
  }
}

因此,每当我向该节点发送要写入的数据时,验证将检查子 myauth,如果值等于“abc123”,则仅继续进行写入操作,但不将 myauth 变量保存到数据库。我知道将数据保存到数据库是一种简单的解决方法,但这可能吗?

【问题讨论】:

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


    【解决方案1】:

    如果没有实际的写操作,就无法触发.write 规则。但是,如果您只是将一个子节点声明为您的“验证测试员”并且只写在那里。

    【讨论】:

    • 那是在每个写入请求中使用 myauth 值作为占位符?从可扩展的解决方案来看,这会是一种矫枉过正吗?我正在开发安卓系统。
    • 安全规则只在服务器上运行。所以无论如何你都需要发送数据。与此相比,它是否真的尝试将它们写入数据库是相当小的。为了获得最佳用户体验:首先尝试防止无效输入(例如,使用下拉菜单而不是文本字段),然后在将输入发送到服务器之前验证输入,然后才依赖服务器端规则发现错误和流氓用户。安全规则是为了确保数据完整性/授权访问,而不是为了确保良好的用户体验。
    猜你喜欢
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2020-08-10
    相关资源
    最近更新 更多