我仍然是Firebase的新手,并且使用Firebase的安全规则来实现安全性。我正在开发一个项目,我需要在Firebase中保存数据,但我没有客户端来访问数据。基本上存储输入字段的值。但是让它访问它。我正在使用AngularFire并在初始化时使用
var ref = new Firebase(url);
$scope.data = $firebaseObject(ref);
它获取该引用上的所有对象。我尝试更改安全规则
{
".read": false,
"write" : true
}
但是它正在抛出错误
auth_payload = { "uid": "anotherclient", "auth_data": "client" }
答案 0 :(得分:3)
$firebaseObject()
将Firebase服务器中的数据同步到您的客户端。所以没有办法以不读取数据的方式使用它。
但是,如果您只想将数据写入Firebase,可以使用Firebase JavaScript SDK(构建AngularFire库)轻松完成此操作:
ref.set({
title: "How to make a firebase object to only write data not read?",
url: "http://stackoverflow.com/q/35997606"
})
正如Kato在评论中提到的,来自the role of AngularFire:
并不总是需要设置AngularFire绑定来与数据库进行交互。在仅写入数据而不在本地同步数据时尤其如此。由于您已经拥有Firebase参考资料,因此仅使用vanilla Firebase客户端库API方法是完全可以接受的。
答案 1 :(得分:1)
尝试".write"
而不是"write"
我建议您修改此示例以确保不会覆盖:
// we can write as long as old data or new data does not exist
// in other words, if this is a delete or a create, but not an update
".write": "!data.exists() || !newData.exists()"