Обновление данных Firestore Uncaught (в обещании) FirebaseError: Отсутствует или недостаточно разрешений - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь обновить ранее существующую информацию из облачного пожарного депо. Вот мои правила:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

        //match logged in user doc in users collection
    match /users/{userId} {
      allow read, write, update: if request.auth.uid == userId;
      allow create: if request.auth.uid != null;
    }
  }
}

, поэтому я могу прочитать данные по userId, и они хорошо читаются на моем сайте, но когда я пытаюсь обновить их, я получаю следующее сообщение об ошибке

error.ts:166 Uncaught (in promise) FirebaseError: Missing or insufficient permissions.
    at new hi (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:51421)
    at https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:316738
    at br.<anonymous> (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:315592)
    at Jt (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:15221)
    at br.I.dispatchEvent (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:16063)
    at Nr.ua (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:45312)
    at nr.I.Fa (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:43219)
    at ze (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:21453)
    at qe (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:20854)
    at xe.I.Ja (https://www.gstatic.com/firebasejs/7.9.3/firebase-firestore.js:1:23264)

Облачное хранилище изображений

Вот мой код для обновления информации об учетной записи

const updateForm = document.querySelector('#update-form');
updateForm.addEventListener('submit', (e) => {
    e.preventDefault();

    auth.onAuthStateChanged(user => {
        console.log(user.uid);
        if(user) {
            db.collection('user').doc(user.uid).set({

                // email: updateForm['update-email'].value,
                name: updateForm['update-name'].value,
                // dob: updateForm['update-dob'].value,
                // phone: updateForm['update-phone'].value

            })
        } else {
            updateAccountInfo();
        }
    })
});

Я потратил 5 часов, пытаясь выяснить, почему я получаю ошибку сообщение, но не повезло. Пожалуйста, укажите мне правильное направление.

1 Ответ

0 голосов
/ 10 апреля 2020

Ваш код использует название коллекции "user", но ваши правила и база данных используют множественное число "users". Они должны точно соответствовать.

...