热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Firebase为当前用户设置安全性和规则-Firebasesetsecurityandrulesforcurrentuser

IamtryingtolettheauthorizedcurrentuserreadandwritetohisowndatatotheFirebasedataba

I am trying to let the authorized current user read and write to his own data to the Firebase database. My security data looks like this:

我试图让授权的当前用户读取和写入他自己的数据到Firebase数据库。我的安全数据如下所示:

{
  "features" : {
    "-KDUBJIPwvLCK-1lV4bM" : {
      "e1fd0ccb-370a-4a6f-86af-87fdf97d25a0" : "een"
    },
    "-KDUBLUr6K_PMxWkgcof" : {
      "e1fd0ccb-370a-4a6f-86af-87fdf97d25a0" : "twee"
    }
  },
  "users" : {
    "e1fd0ccb-370a-4a6f-86af-87fdf97d25a0" : {
      "email" : "tjalling@horecalife.nl",
      "image" : "iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAAAXNSR0IArs4c6QAA\r\nABxpRE9UAAAA",
      "name" : "tjalling dijkstra",
      "telephone number" : "06580055"
    }
  }
}

-KDUBJIPwvLCK-1lV4bM is an autoId gotten from childByAutoId() method

-KDUBJIPwvLCK-1lV4bM是从childByAutoId()方法获得的autoId

e1fd0ccb-370a-4a6f-86af-87fdf97d25a0 is a uid (unique user id).

e1fd0ccb-370a-4a6f-86af-87fdf97d25a0是一个uid(唯一用户ID)。

een is the value of a certain feature.

een是某​​个特征的价值。

My security rules are:

我的安全规则是:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "auth != null && auth.uid == $uid",
        ".write": "auth != null && auth.uid == $uid"
      }
    },
    "features": {
      "$autoId" : { 
      "$uid": {
        ".read": "auth != null && auth.uid == $uid",
        ".write": "auth != null && auth.uid == $uid"
      }
    }
  }
}
}

If I write Firebase rules like this, permission to setValue() is denied on the features part.

如果我编写这样的Firebase规则,则会在功能部件上拒绝setValue()的权限。

2016-03-22 17:51:27.077 Herodus[884:228445] [Firebase] setValue: or removeValue: at /features/-KDUEEZ4z-FCAoUci-rW failed: permission_denied.

2016-03-22 17:51:27.077 Herodus [884:228445] [Firebase] setValue:或removeValue:at / features / -KDUEEZ4z-FCAoUci-rW failed:permission_denied。

A new feature is added with this code snippet:

此代码段添加了一项新功能:

let featureCOntents= addFeatureTextField.text 
if featureContents != "" { 
  let newFeature: String = featureContents! 
  let featureDict = [ uid: newFeature] 
  let ref = DataService.dataService.FEATURE_REF.childByAutoId()
  ref.setValue(featureDict)

Somebody, any clue what I am doing wrong here?

有人,任何线索我在这里做错了什么?

1 个解决方案

#1


1  

You're writing to this path:

你正在写这条道路:

/features/-KDUEEZ4z-FCAoUci-rW 

Your rules only give write permission on this path:

您的规则仅在此路径上提供写入权限:

/features/$autoId/$uid

You'll want to write the data using something like:

您将要使用以下内容编写数据:

ref.childByAppendingPath(authData.uid).setValue(featureDict)

推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
author-avatar
风飞满天2602938511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有