使用 vuexfire 动态绑定 firebase 集合列表

Dynamically bind a list of firebase collections with vuexfire

我在 vuex 存储中有一个 firebase 文档列表,该列表会动态更新。我想用 vuexfire 动态绑定该列表中的文档。

state: {
   docsToBind: [], // dynamic: this gets updated so I cannot hardcode a few bindings
   documents: {} // bind documents here?
},
actions:{
   bindOne: firestoreAction(({ state, bindFirestoreRef }) => {
      return bindFirestoreRef(...)
      }),
   bindAll({state}){
   for(const doc of state.docsToBind){
       // bind the document to a dictionary item?
   },
   unbindTeam({state}){
      // whenever a doc is removed from the listunbind it
   }   
}

这样做正确吗?

注意:我无法绑定整个集合,因为客户端无法访问所有文档。所以我需要绑定 docsToBind

中的子集

使用 Vuexfire,当你绑定时,你应该只提供绑定状态的键,以及源(集合、查询或文档)。

所以如果你想绑定到一个集合的子集,你需要绑定到一个Query,因此你需要知道查询定义(即子集的定义)。

如果您想在“一次操作”中绑定一组文档(定义是动态的,例如一组通过可变 ID 列表标识的文档),您可能需要使用另一种方法。

您可以定义一个查询,例如,通过在文档中使用 ID 字段并使用 in 运算符组合最多 10 个相等 (==) 子句具有逻辑 OR.

的同一字段

或者您需要创建自己的 home-made 绑定,例如在 Vuex 操作中使用 Promise.all()