-1

即使在成功登录宽度 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 中的减速器:

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

注意:使用 react-native 所以使用它的 firebase 库 (React-Native-firebase)。除了 firebase reducer 中的用户配置文件外,一切都运行良好。

4

2 回答 2

1

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

于 2019-11-03T16:05:19.713 回答
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 }
  };
};
于 2019-04-26T20:19:51.580 回答