通过在网络上执行firestore runTransaction函数, 发生以下错误。
firestore.googleapis.com/v1beta1/projects/myproject/databases/(默认)/ documents:commit:1 POST https://firestore.googleapis.com/v1beta1/projects/myproject/databases/(default)/documents:commit 403
我只允许每个人更新一个字段,而其他则是登录用户的字段。
因此更新规则将使用下一个。
allow update: if request.resource.data.keys().hasOnly(["numPlayed"])
|| request.auth.uid != null;
和类似的交易代码
this.db.runTransaction(function(t) {
return t.get(pubRef)
.then(function(pub) {
var numPlayed = pub.data().numPlayed + 1;
t.update(pubRef, { numPlayed: numPlayed });
return numPlayed;
});
})
为什么会发生错误?
答案 0 :(得分:0)
我终于明白了原因。 “ runTransaction”要求写权限不像更新那样分散。