React/Rebase/Firebase 警告:权限被拒绝 - 如何添加用户身份验证?
Posted
技术标签:
【中文标题】React/Rebase/Firebase 警告:权限被拒绝 - 如何添加用户身份验证?【英文标题】:React/Rebase/Firebase warning: Permission Denied - How do I add user authentication? 【发布时间】:2016-10-30 12:54:32 【问题描述】:请原谅我的问题很简单,但由于权限错误,我无法让 Rebase/Firebase 工作(Rebase 与 Firebase https://github.com/tylermcginnis/re-base 非常相似)
我正在构建一个简单的网站作为 React.js 教程的一部分,我只是想在我的页面上保留一些状态。为此,我想要的只是 Firebase 数据库,无需用户身份验证,但是当我设置数据库时,出现权限错误,因此必须强制执行用户身份验证。
这是我在 main.js 顶部的内容:
var Rebase = require('re-base');
var base = Rebase.createClass('https://fishmonger-f3761.firebaseio.com/');
然后在我的主应用程序组件中,我添加了这个:
componentDidMount : function()
base.syncState(this.props.params.storeId + '/fishes',
context : this,
state : 'fishes'
);
我在控制台中收到以下警告:
FIREBASE WARNING: set at /(*my custom store name*)/fishes/fish1/name failed: permission_denied
如何添加基于匿名浏览器会话的用户身份验证以忽略此错误?
【问题讨论】:
【参考方案1】:Firebase DB 默认规则需要身份验证。
来自Get Started with Database Rules页面:
默认情况下,您的数据库规则需要 Firebase 身份验证和 仅向经过身份验证的用户授予完整的读取和写入权限。这 默认规则确保您的数据库不能被任何人访问 在你有机会配置它之前。
这意味着,例如,您可以向任何人授予访问权限。您只需将数据库的默认规则更改为如下所示(再次来自同一文档页面):
// These rules give anyone, even people who are not users of your app,
// read and write access to your database
"rules":
".read": true,
".write": true
阅读我链接的页面上的其他示例,以找到适合您需求的示例。
编辑
要访问规则,请转到您的控制台(确保您已登录 Google)并在侧边栏菜单中选择“数据库”,然后单击“规则”选项卡。网址应该类似于https://console.firebase.google.com/project/<your-project>/database/rules
【讨论】:
非常感谢您的回复。我确实注意到了规则部分,但在文档中没有说明规则代码的去向。一个rules.json文件还是什么? 您可以在 Firebase 控制台的“规则”选项卡中更改规则:“Firebase”>“数据库”>“规则”。 感谢 Ursus 和 Frank。那个标签隐藏得很好,解决了所有问题。以上是关于React/Rebase/Firebase 警告:权限被拒绝 - 如何添加用户身份验证?的主要内容,如果未能解决你的问题,请参考以下文章