使用 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()
。
我在 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()
。