我正在创建一个函数,该函数根据输入到输入框中的名称查询我的 firestore 数据库并返回一些数据。现在,我的查询工作并记录到控制台。问题是我在访问这些数据时遇到了很多麻烦,所以我可以将它渲染到 DOM 上。访问这些数据的最佳方式是什么?
通过使用此代码,我已经将整个数据库渲染到 DOM 上 =>
const mapStateToProps = (state) => {
console.log(state.firestore.queries)
return {
dogs: state.firestore.ordered.dogs,
auth: state.firebase.auth
}
}
export default compose(
connect(mapStateToProps, mapDispatchToProps),
firestoreConnect(() => {
return [
{
collection: 'dogs',
}
]
})
)(ManageDogs)
但是当我按如下方式构造我的 firestoreConnect() 函数时=>
export default compose(
connect(mapStateToProps, mapDispatchToProps),
firestoreConnect(() => {
return [
{
collection: 'dogs',
where: ['name', '==', 'Fido']
}
]
})
)(ManageDogs)
查询记录到控制台如下=>
{status: {…}, data: {…}, ordered: {…}, listeners: {…}, errors: {…}, …}
composite: {dogs: {…}}
data: {dogs: {…}}
errors: {byQuery: {…}, allIds: Array(0)}
listeners: {byId: {…}, allIds: Array(2)}
ordered: {dogs: Array(4)}
queries:
dogs?where=name:==:Fido: {data: {…}, collection: "dogs", where: Array(3)}
__proto__: Object
status: {requesting: {…}, requested: {…}, timestamps: {…}}
__proto__: Object
查询的数据以 state.firestore.queries.dogs?where=name:==:Fido 的值结束,但是当我尝试在 mapStateToProps 中使用此路径时,它返回一个未定义的值。
访问这些数据的最佳方式是什么?以前有没有人处理过这个问题?有没有更好的方法来查询 Firestore 数据库?