如何访问Firestore数据库查询返回的数据?

时间:2019-08-20 03:04:54

标签: reactjs redux react-redux google-cloud-firestore react-redux-firebase

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

0 个答案:

没有答案