Firebase(Swift)runTransactionBlock:权限被拒绝

时间:2017-02-12 06:54:17

标签: ios swift firebase firebase-authentication firebase-security

请问runTransactionBlock在幕后做什么?当我运行一个简单的setValue时,它使用完全相同的规则,但不能运行runTransactionBlock。 我怀疑在引擎盖后面runTransactionBlock写入了我所说的路径之外的路径,这导致我的安全规则拒绝许可。因此,我必须写一个全局".write": "auth != null"并避免做我的通配符".validate": false等内容。

我的安全规则以这种方式绘制:

{
  "rules": {
        // NOTE: I NEED THIS GLOBAL WRITE ALLOW FOR TRANSACTION TO WORK
        ".write": "auth != null",
    "real_db": {
    // USERS
    "users": {
      "$user": {
        ".read": "auth != null",
        "$other": {
          // NOTE: I NEED TO COMMENT VALIDATE FOR OTHER FIELDS IN USER
          // ".validate": false
        },
        "pushToken": {
          ".read": "auth != null",
          ".validate": "auth != null"
        },
        ...

我的runTransactionBlock在路径real_db/users/$uid上运行,我正在更改pushToken的值。当setValue在同一路径上运行并修改pushToken时,它就可以工作。

0 个答案:

没有答案