我正在制作一个Vuejs应用,在其中我要显示游戏中突袭的掠夺。
我遇到的问题是,由于它们不在同一个集合中,因此我必须对每个“ Raid”执行一次以上的提取操作才能从Firebase / firestore中获取每个项目。因此,我的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
我这样做是为了使用Firebase中的索引轻松跟踪我从某个特定物品获得的所有战利品。
我需要帮助进行分页,它确实可以正常工作(无需分页),但是每次获取我的战利品时都会出错。函数如何查找下一个“页面”,我从该列表中的最后一个页面开始。