Невозможно удалить документ из хранилища огня - PullRequest
0 голосов
/ 03 августа 2020

У меня есть следующий код в моем javascript файле, кажется, он работает нормально, но когда я смотрю на консоль firestore, документ все еще там. И если я запускаю свой код инициализации, который загружается из firestore, он загружает do c в мое приложение. Правила базы данных разрешают любой доступ, поэтому не вижу проблем с удалением документа. Фактически, в другом месте у меня есть аналогичный код, и он успешно удаляет документы из хранилища огня. Почесывая голову, этот код должен удалить документ из хранилища огня, но этого не произойдет. Я весь день гуглил эту проблему и не могу найти объяснения или аналогичной проблемы. Я попытался удалить и воссоздать всю свою базу данных, удалил и создал новых пользователей. Но документы категорий в коллекции 'категорий' просто не удаляются из кода (с консоли да)

ЗДЕСЬ МОЙ КОД

deleteCategory({ commit }) {
    // save id before we delete from vuex so we can delete from firestore after
    let id_to_delete = state.categories[state.currentCategory].id
    console.log('idToDelete BEFORE = ', id_to_delete)
    console.log('cat id in vuex', state.categories[state.currentCategory].id)
    
    commit('deleteCategory')

    // now go out to database and delete this category
    console.log('HOOK: delete category from cloud here')
    console.log('user id=', state.userID)
    console.log('idToDelete AFTER = ', id_to_delete)
    let catRef = fs.collection('users')
      .doc('state.userID')
      .collection('categories')
      .doc(id_to_delete)
    
    console.log('catRef=', catRef)
    
    catRef.delete().then(function() {
        console.log('Category successfully deleted!')
        console.log('THEN: user id=', state.userID)
        console.log('THEN: idToDelete = ', id_to_delete)
      })
      .catch(function (error) {
        console.error('Error removing category: ', error)
      })
  },

ЗДЕСЬ МОЙ КОНСОЛЬНЫЙ ВЫХОД:

idToDelete BEFORE = b6f58a4e-6aa4-4e8a-9925-c3f7948739d c

идентификатор кошки в vuex b6f58a4e-6aa4-4e8a-9925-c3f7948739d

* категория удаления

* 10 из облака здесь

идентификатор пользователя = JFRImEwHsNMidmUqxhS80lXioDs1

idToDelete AFTER = b6f58a4e-6aa4-4e8a-9925-c3f7948739d c

t , firestore: t, hE: undefined, WT: t}

Категория успешно удалена!

ТО: идентификатор пользователя = JFRImEwHsNMidmUqxhS80lXioDs1

ТО: idToDelete = b6f58a4e-6a -9925-c3f7948739d c

ЗДЕСЬ ПРАВИЛА МОЕЙ БАЗЫ ДАННЫХ:

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

    // This rule allows anyone on the internet to view, edit, and delete
    // all data in your Firestore database. It is useful for getting
    // started, but it is configured to expire after 30 days because it
    // leaves your app open to attackers. At that time, all client
    // requests to your Firestore database will be denied.
    //
    // Make sure to write security rules for your app before that time, or else
    // your app will lose access to your Firestore database
    match /{document=**} {
      allow read, write: if request.time < timestamp.date(2021, 6, 24);
    }
  }
}

ЗДЕСЬ ТАК, КАК FIRESTORE ВЫГЛЯДИТ ПОСЛЕ ЗАПУСКА КОДА:

ЛЕВАЯ ПАНЕЛЬ:

категории

СРЕДНЯЯ ПАНЕЛЬ:

категории

4f0e7a78-7787-41df-bea5-66a01f41a7c8

b6f58a4e-6aa4-4e8a-9925-c3f7948739d c

ПРАВАЯ ПАНЕЛЬ:

b6f58a4e-6aa4-4e8a-9925-c3f7948739d c* 1045s *

описание 1047 *

идентификаторы

имя: "люди"

вещи

1 Ответ

1 голос
/ 03 августа 2020

Обнаружил ошибку, я передавал строковый литерал как идентификатор пользователя вместо var, тупая ошибка. Не нашел, пока firestore наконец не выдал мне сообщение об ошибке, не знаю, почему раньше не получал сообщение об ошибке.

...