Firebase事务失败;模拟器集运行正常

时间:2018-12-29 19:43:12

标签: javascript firebase firebase-realtime-database firebase-security-rules

所以我已经为这个问题挠了两天。 我对数据库中的级别进行了以下设置:

"PublishedLevels": {
    "$levelid": {
        "private": {
          ..list of vars
        },
        "public": {
          playCount: 0,
        }

    },
}

现在,我正在尝试在playCount上执行事务,但是我不断收到“ permission_denied”。但是,当我通过一组在模拟器中运行它时,效果很好。

我正在使用以下代码进行交易:

var playCountRef = firebase.database().ref(`/PublishedLevels/${levelData.uid}/public/playCount`);
playCountRef.transaction(count => {
    console.log(count);
    if (count === null) {
        return count = 0;
    } else {
        return count+1;
    }
});

PublishedLevels 设置的规则为:

"PublishedLevels": {
    ".indexOn": "private/creationDate",
    ".write": "auth != null",
    ".read": true,
  }

期待朝着正确的方向前进!

预先感谢

Erik

* update1帖子现在包括所有规则

* update2甚至从PublishedLevels删除所有验证规则,我仍然遇到以下问题: enter image description here

1 个答案:

答案 0 :(得分:0)

好,我知道了,显然我弄乱了自动登录流程。交易完成后,用户尚未登录。我非常确信这不可能,所以我忽略了该部分。