最好通过向您展示我的规则来解释:
{
"rules": {
"datasets": {
"$dataset": {
"$secureName": {
".read": "true",
".write": "true"
}
}
}
}
}
基本上规则(应该)说的是:只有在点击/datasets/$dataset/$secureName
时才能读写。这就是我在没有身份验证的情况下保护我的应用程序的方法(任何使这个更好的建议都很棒)。
问题是,如果存在同名的dataset
,我不想创建新的dataset
。
我试过这个:
new Firebase(FIREBASE_URL).once('value', function(dataSnapshot) {
if (dataSnapshot.hasChild(SOME_NAME)) {
// It exists! Don't make a new one!
} else {
// It doesn't exist! Make a new one!
}
});
但问题是,在dataSnapshot
中,它包含的所有信息都不会使我的应用程序非常安全。任何提示都会很棒!谢谢!
答案 0 :(得分:0)
将安全规则更改为仅在数据集不存在时才允许写入:
{
"rules": {
"datasets": {
"$dataset": {
"$secureName": {
".read": "true",
".write": "!data.exists()"
}
}
}
}
}