【问题标题】:Cannot Create User Profile in Firebase无法在 Firebase 中创建用户配置文件
【发布时间】:2018-12-18 22:22:33
【问题描述】:

首先,感谢您抽出宝贵时间;这是我发布的第一个问题!

我正在用 React Native 编写我的第一个移动应用程序:一个为我的兄弟会管理统计数据的应用程序。现在,我希望管理员用户能够将其他用户添加到应用程序并设置他们的初始个人资料信息(名字、姓氏、职位、支付的会费等)。

一旦他们提交了详细信息,下面的代码就会告诉 firebase 使用提供的电子邮件和密码创建一个新用户,然后将他们的其他个人资料信息添加到实时数据库中的用户父级下。

firebase.auth().createUserWithEmailAndPassword(email, password)
  .then(() => {
    console.log(key);
    firebase.database().ref('/ChapterName/users/' + key)
    .set({ firstName, lastName, rank, position, goodStanding, dues, communityService, chapters, mixers, brotherhoods });
  })

创建的 JSON 树可以在这里看到:Firebase Tree

我的问题是,当新用户登录时,我找不到访问他们的个人资料信息的方法......理想情况下,我会将“用户”下的每个孩子的密钥设置为用户的电子邮件:这样他们就可以登录,我可以将他们的电子邮件与他们的个人资料信息的键相匹配并以这种方式获取。不幸的是,密钥必须是 UTF-8 编码,并且不允许我包含“@ or .”

有人知道解决这个问题的方法吗?我觉得firebase Admin API 可能是一个解决方案,但我似乎无法理解它。

【问题讨论】:

    标签: firebase react-native firebase-realtime-database firebase-authentication react-redux


    【解决方案1】:

    在带有firebase的react-native中,如果他们的用户已经登录并且您已经将firebase与redux集成,您可以使用此行访问redux中的当前用户信息

    state.firebase.profile
    

    根据我的建议,我认为最好是集成 react-native app + react-native-firebase + react-redux-firebase

    因此,您不必使用 web firebase 功能,因为它已经存在于 props 中。

    如果您需要在用户创建后更新配置文件,您可以使用类似的东西

    this.props.firebase.auth().createUserAndRetrieveDataWithEmailAndPassword(email, password).then((user) => {
    
            this.props.firebase.updateProfile(
              {
                name: 'Hazim',
                age: 24,
                mode: 'Rampage'
              }
            )
    
          }).catch((error) => {
            //Error value
          })
    

    在任何组件中,您都可以使用这样的连接功能获取当前用户信息。

    class Home extends Component {
    
    }
    
    export default compose(
      firebaseConnect(),
      connect( state => {
        profile: state.firebase.profile
      })
    )(Home)
    

    【讨论】:

      猜你喜欢
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 2015-06-24
      • 2018-01-03
      • 1970-01-01
      • 2021-04-21
      相关资源
      最近更新 更多