транзакция firestore выдает ошибку для правила обновления, которое позволяет иметь только одно определенное поле - PullRequest
0 голосов
/ 26 сентября 2018

при выполнении функции runTransaction для firestore в Интернете возникает ошибка ниже.

firestore.googleapis.com / v1beta1 / projects / myproject / database / (по умолчанию) / 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;
    });
})

почему возникает ошибка?

1 Ответ

0 голосов
/ 20 июня 2019

Я наконец получил причину.Для 'runTransaction' требуются права на запись, а не разделенное обновление.

...