0

最好通过向您展示我的规则来解释这一点:

{
  "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其中包含所有信息,这并不能使我的应用程序非常安全。任何提示都会很棒!谢谢!

4

1 回答 1

0

更改您的安全规则以仅在数据集不存在时才允许写入:

{
  "rules": {
    "datasets": {
      "$dataset": {
        "$secureName": {
          ".read": "true",
          ".write": "!data.exists()"
        }
      }
    }
  }
}
于 2013-10-11T18:39:21.893 回答