Как я могу разбить документы на документы из коллекции, чтобы позже получить подколлекцию из этого документа без ошибок - PullRequest
0 голосов
/ 14 октября 2019

Я делаю приложение Vuejs, в котором я показываю добычу из рейда в игре.

Проблема, с которой я столкнулся, заключается в том, что, поскольку они не находятся в одной коллекции, мне нужно сделать больше, чем однувыбирайте каждый "Рейд", чтобы получить каждый предмет из базы огня / магазина огня. Поэтому мой Vuex жалуется, что я делаю больше выборок, чем ему нравится, вот ошибка:

[Vue warn]: Error in callback for watcher "function () { return this._data.$$state }": "Error: [vuex] do not mutate vuex store state outside mutation handlers."

и

[vuex] do not mutate vuex store state outside mutation handlers.

это мое действие Vuex:

GetFirstTenRaids({ commit }) {
        var CoX = firebase.firestore().collection(CollOne).doc(MyUid).collection('ChambersOfXeric')
        let newRaidsData = []
        CoX.orderBy('KC', 'desc').limit(10).get()
            .then(function (CoXQuery) {
                let firstDoc = CoXQuery.docs[0].id
                let lastDoc = CoXQuery.docs[CoXQuery.docs.length - 1].id
                CoXQuery.forEach(function (raid) {
                    let lootData = []
                    let KC = String(raid.data().KC)
                    CoX.doc(KC).collection('Loot').get()
                        .then(function (thisRaidLootID) {
                            thisRaidLootID.docs.forEach(function (thisLoot) {
                                if (!raid.data().Unique) {
                                    lootData.push({
                                        "Item": thisLoot.data().Item,
                                        "Amount": thisLoot.data().Amount
                                    })
                                } else {
                                    lootData.push({
                                        "Item": thisLoot.data().Item,
                                        "Pet": thisLoot.data().Pet
                                    })
                                }
                            })
                        })
                    newRaidsData.push({
                        "killcount": raid.data().KC,
                        "points": raid.data().Points,
                        "Clue": raid.data().Clue,
                        "unique": raid.data().Unique,
                        "items": lootData
                    })
                })
                commit('addThislootToStore', newRaidsData)
            })
    }

как структурированы данные: DataStructure

Я сделал это таким образом, чтобы было проще отслеживать все лоты, которые я получил от конкретного предмета, используя индексыв огненной базе.

Мне нужна помощь в разбивке по страницам, она работает прямо сейчас (без нумерации страниц), но она получает ошибку при каждой добыче, которую я получаю. Как функция будет искать следующую «страницу», где я начинаю после последней в этом списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...