首页 \ 问答 \ Firebase允许拒绝(Permission denied with Firebase)

Firebase允许拒绝(Permission denied with Firebase)

我希望我的应用程序的用户有权访问通过实时数据库访问的其他用户的配置文件。 我正在引用db via

ref.once('users/'+uid, snapshot => snapshot.child('users/'+uid).val())

我有的规则:

{
  "rules": {
    "users": {
      ".read": true,
      "$uid": {
        ".write": "$uid === auth.uid"
      },
   },
}

我不知道为什么我无法访问users/:uid即使模拟器通过勾选read并运行<firebaseURL>/users上的模拟来提供success消息。

如果我设置".read": true"rules下它确实允许我读取数据,但如果我想要实现我不希望未经授权的用户可用的内容,这可能会".read": true"我的注意。

编辑(解决方案):

问题在于引用firebase。 而不是firebase.database.ref('users')我通过firebase.database.ref()引用了root本身。

该引用导致应用默认read/write规则。


I want users of my app to have access to see profile of other users that is accessed via real-time database. I'm referencing to db via

ref.once('users/'+uid, snapshot => snapshot.child('users/'+uid).val())

Rules i have:

{
  "rules": {
    "users": {
      ".read": true,
      "$uid": {
        ".write": "$uid === auth.uid"
      },
   },
}

I don't get why i can't access users/:uid even though simulator gives success message by ticking read and running simulation on <firebaseURL>/users.

If i set ".read": true" under rules it does allow me to read the data, but that may bait me later on if i would want to implement stuff that i don't want to be available to unauthorized users.

Edit (solution):

The problem was with referencing to firebase. Instead of firebase.database.ref('users') I was referencing too root itself by firebase.database.ref().

That reference caused to apply default read/write rules.


原文:https://stackoverflow.com/questions/45217092
更新时间:2019-11-21 11:13

最满意答案

您可以提供".read": "auth != null"以允许所有授权用户读取users对象下的数据并防止未经授权的用户阅读它。


You could give ".read": "auth != null" to allow all authorised users to read data under users object and prevent unauthorised users from reading it.

2017-07-20

相关问答

更多

如果一个物体撞得太快,区域约束就会炸毁我的物理模拟(Area constraint blows up my physics simulation if a body slams into it too fast)

我看到你正在用恒定的时间步长T进行计算。当在每一步上建模碰撞时,你应该使用等于最小时间的时间步长,然后任何原子到达任何障碍物。 使时间步长变化,原子永远不会“隧道”障碍。 PS碰撞检测有很多优化,请阅读gamedev论文以获取相关信息。 PS一个bug? force = new Vector2(-(_min.X - atom.Position.X), 0); 为X和Y反射单独创建力。 当原子进入角落时会发生什么? 只会施加第二个力。 PPS:使用epsilon 另一个重要的注意事项:如果使用浮

Web框架API(Web framework API)

Wt是其预期应用范围的一个很好的框架。 这非常适合: 网络应用紧密耦合到会话,即 仅供登录用户访问(登陆页面除外) 显示许多依赖于用户的内容(因此不适用于维基) 严重依赖国家 需要大量控件/按钮和用户输入的Web应用程序。 例如,我打算编写一个浏览器MMORPG。 页面将全部与用户绑定状态,并且会有很多按钮。 这是完美的 。 我曾经是一个Ruby on Rails开发者,切换到Wt这个应用程序是一个伟大的时刻。 使用试图强制执行纯REST的传统框架来设计表单会非常麻烦。 对某些进程的控制接口来说

VS2005 / VS2008 DataSet设计器,在具有自动生成的guid列的表中插入一行(VS2005/VS2008 DataSet designer, insert a row into a table that has an autogenerated guid column)

可能是其中之一: 如果您的应用程序不需要DataSet中的列,请将其删除。 如果您想要列但不关心为它赋值,则将其更改为允许DBNull。 您始终可以关闭约束强制执行(可能是一个坏主意):DataSet.EnforceConstraints = false 您可以使用未发送到数据库的代理键填充列。 对于前两个选项,如果您希望让设计人员保持您的结构与数据库同步,那么您可以删除列或以编程方式允许null,也许就在“// HACK:”注释解释原因的旁边。 Possibly one of these: I

我应该在iPhone视图中“保存”更改为“创建新对象”?(Where should I “save” changes in my iPhone view to 'create new' of an object?)

听起来你的视图是一个完美的候选者,可以通过模态推送,而不是通过导航控制器堆栈。 按模式推送创建NSManagedObject的视图: [self presentModalViewController:yourViewController animated:YES] 然后继续使用右上角的EDIT / DONE按钮进行编辑/验证,当验证成功时,只需保存对象并从父视图控制器中关闭模态视图控制器: [[self parentViewController] dismissModalViewControl

在Intranet中启用跨域脚本(Enabling cross domain scripting in the intranet)

IE8,Firefox 3,最近的Opera和Safari / Chrome支持postMessage,它允许不同域上的合作页面相互通信: http://ajaxian.com/archives/cross-window-messaging-with-html-5-postmessage 如果您遇到旧版浏览器,则几乎没有选择。 最干净的是通过相同的代理发送需要相互通信的所有内容,尽管在OP的情况下看起来这是不可能的。 下一个最干净的是使用Flash的跨域设施。 另一种选择是xssinterfac

从无签名转换为签名类型安全?(Conversion from unsigned to signed type safety?)

访问是明确定义的,允许您通过指向对应动态类型(3.10 / 15)的有符号或无符号类型的指针来访问对象。 此外,保证signed char不具有任何陷阱值,因此无论原始unsigned char对象的值是什么,您都可以安全地读取signed char指针。 当然,您可以期望通过一个指针读取的值与通过另一个指针读取的值不同。 编辑:关于sellibitze的评论,这是3.9.1 / 1所说的。 char,signed char和unsigned char占用相同的存储空间并具有相同的对齐要求(3.

ObjectReference JDI和JPDA中的底层对象(ObjectReference underlying object in JDI and JPDA)

为什么ObjectReference不公开其底层对象? 我假设您指的是com.sun.jdi.ObjectReference接口。 如果是这样,它是两件事的组合: 从表面上看,它没有意义。 ObjectReference位于运行调试器的JVM中,但目标计算机上存在相应的Java对象。 假设它确实有意义,那么暴露实际的pbject地址和内存内容将是一件坏事。 这将允许调试器对目标JVM执行操作,从而导致硬崩溃。 考虑到你从ObjectReference获得uniqueID()的情况,有没有办法从J

如何编写正则表达式只允许数字和“(”,“)”,“ - ”(How to write a regex only allow numbers and “(”, “)”, “-”)

你实际测试的是你的测试字符串中是否有这些字符。 您想检查它是否只包含那些字符。 要做到这一点,你需要说从开始^到完成$它只包含那些字符。 例如 /^[0-9()-]+$/.test('(12321)213213d') What you're actually testing is if any of those characters are in your test string. You want to check if it contains only those characters.

相关文章

更多

最新问答

更多
  • 用于Json解析的Phonegap插件(Phonegap Plugin for Json parsing)
  • ActionScript 2加载另一个加载其他文件的SWF - 相对路径/网址问题(ActionScript 2 load another SWF that loads other files - relative path/url problem)
  • 使用sql将一些列值放入新列中(put some column values in a new column using sql)
  • 在iOS中为NivevehGL设置View的背景图像(Setting the background image of the View for NivevehGL in iOS)
  • 从普通的C#开发人员到普通的Java开发人员需要多长时间?(How long will take from an average C# developer to an average Java developer?)
  • 通过datetimefield SQL Server加入(Joining by datetimefield SQL Server)
  • Python中是否有任何智能打印方法?(Are there any smart print methods in Python?)
  • R中关闭另一个表[关闭](Removing one table from another in R [closed])
  • 枚举数字(Enumerating digits)
  • 我想从现有数组中获取新数组,其中key是旧数组的重复值,value是重复计数?(I want new array from existing array with key as repeated value from old array and value as repeated count?)
  • 如何在不创建实例的情况下调用类方法(How to call a class method without creating an instance)
  • wxHaskell中嵌入的图像(Embedded images in wxHaskell)
  • 蚂蚁战争任务如何运作?(How does the ant war task work?)
  • Windows Workflow 4中的人员活动支持(Human activity support in Windows Workflow 4)
  • 在Firebug的Net Panel中缺少'DomContentLoaded'和'加载'时间信息(Missing 'DomContentLoaded' and 'load' time information in Firebug's Net Panel)
  • 如何抓取页面以查看复选框/广播/文本输入并检测其原始值的更改?(How can I crawl the page for checkbox/radio/text inputs and detect changes to their original values?)
  • Document.ready不起作用(Document.ready won't work)
  • Java序列化问题(Java serialization problem)
  • Javascript:如何在页面刷新时处理令牌验证?(Javascript: How should I handle token verification on page refresh?)
  • 数据库安全:中间“to_be_deleted”列/表?(Database safety: Intermediary “to_be_deleted” column/table?)
  • 使用mayavi时如何删除scalar_cut_plane中的红框和白色箭头?(How to remove the red frame and white arrow in scalar_cut_plane when using mayavi?)
  • 如何延迟MainPage,所以它在加载数据后启动?(How to delay MainPage, so it starts after data is loaded?)
  • 按Enter键更改EditText(Press Enter to change EditText)
  • 使用libavcodec解码时可以裁剪帧大小吗?(Can the frame size be cropped during decoding using libavcodec?)
  • Performance_Python根据元组的3个元素中的2个获得2个元组列表的并集(Performance_Python get union of 2 lists of tuple according to 2 out of the 3 elements of the tuple)
  • 为什么法线会随相机旋转?(Why normals rotate with camera?)
  • 如何将Intent与ListView一起使用?(How do I use Intents with ListView?)
  • html_safe无法使用rails(html_safe not working with rails)
  • 录制没有单独的程序或库的opengl视频(record opengl video without separate program or library)
  • 滚动到特定视图(Scroll to particular view)