使用 firestore 的 Vuex 负载中的未定义数组 where ' in ' 查询
Undefined array in Vuex payload using firestore where ' in ' query
我正在尝试进行这样的 'in' 查询:db.collection('units').where('SuperID', 'in', payload)
SuperID: 是一个数字
payload: 是一个匹配 SuperIDs
的数字数组
我这样做是为了根据这样的文档对用户进行分组
Vuex 商店
getgs: firestoreAction(({ bindFirestoreRef, payload }) => {
//return the promise returned by 'bindFirestoreRef'
return bindFirestoreRef('gs', db.collection('units').where('SuperID', 'in', payload))
}),
方法
methods: {
...mapActions(['getgs']),
ggs(payload){
console.log(payload)
this.getgs(payload)
}
}
每当我尝试调用它时,它都会记录我需要的数组,然后说它未定义并抛出 Firebase 错误。
好的,我想我这次找到了答案。
使用 docs 中的示例:
actions: {
checkout ({ commit, state }, products) {
// save the items currently in the cart
const savedCartItems = [...state.cart.added]
// send out checkout request, and optimistically
// clear the cart
commit(types.CHECKOUT_REQUEST)
// the shop API accepts a success callback and a failure callback
shop.buyProducts(
products,
// handle success
() => commit(types.CHECKOUT_SUCCESS),
// handle failure
() => commit(types.CHECKOUT_FAILURE, savedCartItems)
)
}
}
看起来你的动作定义应该是
getgs: firestoreAction(({ bindFirestoreRef }, payload) => {
//return the promise returned by 'bindFirestoreRef'
return bindFirestoreRef('gs', db.collection('units').where('SuperID', 'in', payload))
}),
有效载荷在上下文对象之外。
我正在尝试进行这样的 'in' 查询:db.collection('units').where('SuperID', 'in', payload)
SuperID: 是一个数字
payload: 是一个匹配 SuperIDs
的数字数组我这样做是为了根据这样的文档对用户进行分组
Vuex 商店
getgs: firestoreAction(({ bindFirestoreRef, payload }) => {
//return the promise returned by 'bindFirestoreRef'
return bindFirestoreRef('gs', db.collection('units').where('SuperID', 'in', payload))
}),
方法
methods: {
...mapActions(['getgs']),
ggs(payload){
console.log(payload)
this.getgs(payload)
}
}
每当我尝试调用它时,它都会记录我需要的数组,然后说它未定义并抛出 Firebase 错误。
好的,我想我这次找到了答案。
使用 docs 中的示例:
actions: {
checkout ({ commit, state }, products) {
// save the items currently in the cart
const savedCartItems = [...state.cart.added]
// send out checkout request, and optimistically
// clear the cart
commit(types.CHECKOUT_REQUEST)
// the shop API accepts a success callback and a failure callback
shop.buyProducts(
products,
// handle success
() => commit(types.CHECKOUT_SUCCESS),
// handle failure
() => commit(types.CHECKOUT_FAILURE, savedCartItems)
)
}
}
看起来你的动作定义应该是
getgs: firestoreAction(({ bindFirestoreRef }, payload) => {
//return the promise returned by 'bindFirestoreRef'
return bindFirestoreRef('gs', db.collection('units').where('SuperID', 'in', payload))
}),
有效载荷在上下文对象之外。