【发布时间】:2016-04-01 11:31:42
【问题描述】:
我正在尝试基于 React + ReactFire 创建一个简单的待办事项或博客系统。
在阅读了一个小时的 firebase 教程后,对配置 firebase 安全规则感到困惑。
保存元素的代码:
this.props.itemsStore.push({
text : this.state.text,
done : false,
user : this.props.user.uid
})
一切正常,但我如何才能获得所有记录仅拥有但授权用户?
这条规则不起作用:
"rules": {
"items" : {
".write" : "auth !== null",
"$item" : {
".read": "data.child('user').val() == auth.uid"
}
}
}
似乎没有办法只为一个用户获取所有记录,使用安全规则,而不是这个,我应该使用过滤器之类的东西。但同样,我不知道如何在 ReactFire 中过滤元素,并且在手册中没有任何信息。
例如它在 Parse 中是如何工作的 http://i.stack.imgur.com/l9iXM.png
【问题讨论】:
-
问题不清楚;您是在问如何读取用户“拥有”的所有记录吗?如果是这样,则 Firebase 中没有数据的所有权。如果您要问如何允许某个经过身份验证的用户读取数据,那是一个不同的问题。问题中的规则适用于“项目”节点,但您的数据没有“项目”节点。你能把代码、规则和问题澄清一下吗?
-
感谢您的回答。我认为这两种变体:读取用户“拥有”的所有记录或允许某个经过身份验证的用户读取数据,彼此非常接近。结果,我想要一个主题列表,用于我网站的主页。其中主题仅适用于创建它们的用户。
-
这里的所有代码库github.com/Rukomoynikov/firebaseReact 获取 src/app.jsx 中主题列表的主要方法。你能帮我理解,我怎样才能获得授权用户拥有的所有主题?非常感谢) componentWillMount : function(){ this.fb = new Firebase(rootUrl + 'items/'); this.getAuthData(); this.bindAsObject(this.fb, 'items'); this.fb.on('value', this.handleDataLoaded); },
标签: authentication reactjs firebase