使用 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))
    }), 

有效载荷在上下文对象之外。