react-redux-firebase:uid在实时数据库中未定义

时间:2018-05-21 14:43:03

标签: reactjs firebase firebase-realtime-database react-redux-firebase

我正在尝试使用the docs中所述的用户配置文件在我的项目中设置react-redux-firebase。我遇到了以下问题 - 每次创建用户时,数据库都会将用户数据保存在" undefined":

firebase data

我认为它应该将用户保存在他们的uid下,因此出于某种原因,当用户存储在数据库中时,uid是未定义的。我创建了一个沙箱来重现问题:https://codesandbox.io/s/6jl07r6v7w (将您自己的firebase配置粘贴到store.js中以自行尝试)。

以下是我如何设置商店:

import { combineReducers, createStore, compose } from "redux";
import { reactReduxFirebase, firebaseReducer } from "react-redux-firebase";
import firebase from "firebase";

export const initStore = () => {
  const firebaseConfig = {
    // config
  };

  firebase.initializeApp(firebaseConfig);

  const rrfConfig = {
    userProfile: "users"
  };

  const createStoreWithFirebase = compose(
    reactReduxFirebase(firebase, rrfConfig)
  )(createStore);

  const rootReducer = combineReducers({
    firebase: firebaseReducer
  });

  return createStoreWithFirebase(rootReducer);
};

以及我创建用户的地方:

import React, { Component } from "react";
import { withFirebase } from "react-redux-firebase";

class CreateUser extends Component {
  constructor(props) {
    super(props);
    this.submit = this.submit.bind(this);
  }

  submit() {
    this.props.firebase
      .createUser({
        email: "test@test.com",
        password: "123456"
      })
      .then(userData => console.log(userData))
      .catch(err => window.alert(err.message));
  }

  render() {
    return <button onClick={this.submit}>create a user</button>;
  }
}

export default withFirebase(CreateUser);

在我的文档中看起来就像。有人看到问题吗?

1 个答案:

答案 0 :(得分:0)

您使用的是Firebase JS SDK的5.*.*吗?

如果是这样,这可能是由于最近的Firebase JS SDK版本中的一些重大更改,这些更改影响了部分react-redux-firebase句柄配置文件(believe this recently reported issue is the same)。

目前正在努力解决这个问题,但如果有机会,我们会一直向PR开放。

披露:我是react-redux-firebase

的主要作者