首页 > 解决方案 > 如何访问从我的 firestore 数据库查询返回的数据?

问题描述

我正在创建一个函数,该函数根据输入到输入框中的名称查询我的 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 数据库?

标签: reactjsreduxreact-reduxgoogle-cloud-firestorereact-redux-firebase

解决方案


推荐阅读