Firebase安全规则阻止写入Firebase
注意:这个问题被标记为Firebase安全规则阻止写入Firebase,firebase,polymer,polymer-1.0,firebase-security,Firebase,Polymer,Polymer 1.0,Firebase Security,注意:这个问题被标记为polymer,因为polymer库用于生成Javascript 这个问题涉及两个不同但相关的Firebase安全问题。当试图让Firebase安全规则发挥作用时,问题1和问题2似乎暗示了相反的现实和相反的结果。(FWIW:) 问题1 Firebase安全规则阻止写入Firebase 说明书 输入您的firebase ID。例如:“hot-sauce-123” 在新选项卡或窗口中,转到firebase并打开它 允许匿名身份验证: 你的火力基地 >登录和验证 >匿名标签
polymer
,因为polymer库用于生成Javascript
这个问题涉及两个不同但相关的Firebase安全问题。当试图让Firebase安全规则发挥作用时,问题1和问题2似乎暗示了相反的现实和相反的结果。(FWIW:)
问题1
Firebase安全规则阻止写入Firebase
说明书
无效路径。模拟中止。
firebase auth
元素向firebase进行身份验证
<firebase-auth id="firebaseLogin"
user="{{user}}"
...
及
这是对Firebase执行AJAX请求,这意味着您正在使用。但由于这是一个常规HTTP调用,因此它不会“继承”Firebase JavaScript客户端的身份验证
要验证您的REST请求,您需要。您可以使用ref.getAuth().token
从Firebase引用获取令牌
问题2
Firebase数据库中的每个元素都可以通过唯一的URL访问。您可以使用Firebase SDK之一访问它,也可以直接访问Firebase公开的REST API
根据我从jsbin收集到的信息,您正在使用以下方式向Firebase写信:
computeFbTargetJson: function(f) {
return f + '.json';
}
computeFbTargetJson: function(f) {
return f + '.json';
}
及
这是对Firebase执行AJAX请求,这意味着您正在使用。该API文档的第一段解释了Firebase数据库URL如何映射到REST API:
我们可以使用任何Firebase应用程序URL作为REST端点。我们需要做的就是将.json附加到URL的末尾,并从我们最喜欢的HTTPS客户端发送请求
因此,为了使用RESTAPI访问Firebase中的任何数据,需要将.json
附加到该数据的URL
使用Firebase模拟器时,操作类似于使用Firebase的JavaScript SDK。在这种情况下,您不应该将.json
后缀放在URL的末尾
因此在https://mine.firebaseio.com/
,假设您在/users/de01fc8104
上有一个用户配置文件
- 您可以在模拟器中访问该记录,也可以使用Firebase SDK作为
https://mine.firebaseio.com/users/de01fc8104
- 要使用RESTAPI访问记录,URL为
https://mine.firebaseio.com/users/de01fc8104.json
firebase collection
会自动为您处理所有必要的身份验证令牌。感谢您的精彩回答。(+1)顺便说一句,根据左侧的导航菜单,但页眉的标题表示用户授权。因此Firebase的某些人可能想要决定什么是什么,并使这两个页面标题像其他页面标题一样匹配它们的菜单标签。这种差异确实触发了我的强迫症。
this.set('$.ajax.url' , this.fbTargetJson);
this.set('$.ajax.body' , JSON.stringify({
jquux: 'jbaz'
}));
this.$.ajax.generateRequest();
computeFbTargetJson: function(f) {
return f + '.json';
}
this.set('$.ajax.url' , this.fbTargetJson);
this.set('$.ajax.body' , JSON.stringify({
jquux: 'jbaz'
}));
this.$.ajax.generateRequest();