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 警告:权限被拒绝 - 如何添加用户身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

警告执行已完成,带有警告存储过程

怎么忽略KEIL的警告

IOS警告消除

Quick.db unwarn 命令取消警告成员中的所有警告

java程序中很多警告,如何修改掉?

将特定级别的所有警告视为错误,而不是下一级的警告