react-redux-firebase未在Firebase Reducer中填充配置文件

时间:2019-04-26 16:50:33

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

即使成功登录宽度auth.signInWithEmailAndPassword方法和数据已存在users / $ {uid}之后,

react-redux-firebase也不会在firebase reducer中填充用户配置文件。由于我将数据存储在firestore中,因此我已经进行了配置react-redux-firebase为:

const reduxFirebaseConfig = {
  userProfile: 'users',
  attachAuthIsReady: true,
  useFirestoreForProfile: true,
  updateProfileOnLogin: false
};

redux-dev-tool中的reducer:

firebase > profile {isLoaded: false, isEmpty: true}. 

注意:使用react-native,因此使用它的firebase库(React-Native-firebase)。除了Firebase Reducer中的用户个人资料,一切都可以正常运行。

2 个答案:

答案 0 :(得分:0)

您是否为reduxFirebaseConfig指定了profileFactory键?

我的reduxFirebaseConfig看起来像:

const reduxFirebaseConfig = {
  userProfile: 'users',
  useFirestoreForProfile: true,
  enableRedirectHandling: false,
  resetBeforeLogin: false,
  profileFactory
};

我的个人资料工厂如下:

const profileFactory = (userData, profileData) => {
  let {
    email,
    firstName,
    lastName,
    companyId,
    department,
    division
  } = profileData;
  firstName = startCase(firstName);
  lastName = startCase(lastName);
  const username = `${firstName} ${lastName}`;
  const initials = `${firstName[0]}${lastName[0]}`;
  return {
    email: email,
    firstName,
    lastName,
    username,
    initials,
    department,
    division: division || '',
    companies: { [companyId]: true }
  };
};

答案 1 :(得分:0)

问题是很久以前添加的,但是我找到了解决方法: 这仅适用于使用应用程序表单创建的用户。不是您在Firebase中创建的初始用户,因为该用户在“用户”集合中不存在。