【问题标题】:Firebase DB rules. Limit write access by phone numberFirebase 数据库规则。通过电话号码限制写访问
【发布时间】:2018-12-22 03:59:52
【问题描述】:

我正在使用 Firebase 实时数据库为我在不同平台上的应用程序实现同步数据库。 我需要让每个人都从数据库中读取的方法。 只有通过电话号码验证的用户,如果此号码在管理员列表中,将能够写入数据库。我没有找到从数据库规则中的“auth”对象获取电话号码的方法。 任何帮助将不胜感激!

这是我现在使用的数据库结构和规则。

{
  "admins" : {
    "+97254000000" : {
      "name" : "Pirate Pirate",
      ...
    }
  },
  "mesages" : {
    "msg1" : {
      "orderTimestamp" : 1526916646226,
      "txt" : "some message"
    },
    "msg2" : {
      "orderTimestamp" : 1526916643522,
      "txt" : "some message"
    },
    "msg3" : {
      "orderTimestamp" : 1526916486229,
      "txt" : "some message"
    }
  }
}
// Database Rules
{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

【问题讨论】:

    标签: firebase firebase-realtime-database rules


    【解决方案1】:

    好的。经过几个小时的搜索,我停下来喝了杯咖啡,马上就找到了答案:)

    Firebase 数据库安全规则附带 "auth" 对象,其中包含检查用户身份所需的几乎所有内容。(电话号码、电子邮件、姓名等) 所以我要找的所有信息都放在"auth.token" 部分。

    新规则如下:

    {
      "rules": {
        ".read": "auth != null",
        ".write": "root.child('admins').child(auth.token.phone_number).exists()"      
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-27
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2021-02-11
      • 2018-12-15
      • 2017-05-25
      相关资源
      最近更新 更多