【问题标题】:Change the firebase security role更改 firebase 安全角色
【发布时间】:2020-11-16 15:43:21
【问题描述】:

我在 Firebase 实时数据库中有以下 JSON 文件结构。 我想扮演我的角色,如果 namenumber 为空,不要读取数据,写入 firebase 暂时可以... 我写的代码是否正确?我不知道如何定位树中的特定分支(我是初学者)。它通过一个错误说 Unknown variable '$name'。

这是我的代码:

{
 "rules": {
    "users": {
        "uid": {
          "name":{
            ".read": "$name !== null",
            ".write": true
         }
      }  
    }   
  }
}

这是我的原始代码。

users
 4hUNfg6xhiZ8ZTVQVFOYeFHL2ME3
  blood_Group: "A+"
  city: "الموصل الايسر"
  donor: true
  email: "a07503240115@gmail.com"
  gender: "ذكر"
  mobile: "07503240115"
  name: "أحمد ابراهيم"
  password: "a07503240115"
  uid: "4hUNfg6xhiZ8ZTVQVFOYeFHL2ME3"

【问题讨论】:

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


    【解决方案1】:

    只有一些预定义的变量可用于编写规则,例如:

    auth - 包含用户身份验证信息

    data - 包含当前树下的数据。

    所以你不能像变量一样访问数据库这样的字段。

    这就是我假设您想要的 - 如果该用户对象的 namemobile 字段不为空,则用户应该只能从 users/$uidread

    你是这样做的:

       {
         "rules": {
            "users": {
                "$uid": {
                  ".read": "data.child('name').val() != null &&  data.child('name').val().length > 0 && data.child('mobile').val() != null &&  data.child('mobile').val().length > 0",
                  ".write": true
                 }
              }  
            }   
        }
    

    仅当 namemobile 不为 null 且不为空时,才允许对特定用户对象进行读取访问。

    【讨论】:

    • 感谢您的代码@Susheel。我试过你的代码,但没有用。我什至将 '&&' 更改为 '||'没有什么变化。我不知道问题出在哪里。
    • @AhmedMostfa_89 您在发布规则时是否收到任何错误消息?如果是,请分享。
    • 我遵循了您共享的确切代码。它说 read denied 。模拟快照:键入读取位置 /users/uid/name/"أحمد ابراهيم" Data null Auth null
    • @AhmedMostfa_89 那不是一个有效的路径。您只能参考文档而不是字段。有效路径是 - users/4hUNfg6xhiZ8ZTVQVFOYeFHL2ME3 。试试这个,让我知道。
    • 现在可以使用了。谢谢,但是当我发布它时,它在我的手机上不起作用。我可以给您发送 Play 商店应用程序链接吗?一定有什么不对。好吧,该应用程序搜索血型和城市,如果在 Firebase 端找到数据(基于血型和城市),它​​将显示所有结果。但如您所知,有些用户在输入他们的信息时没有电话号码和姓名。我仍然面临同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 2014-10-22
    • 2016-06-20
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多