首页 文章

无法在Firebase中创建用户 Profiles

提问于
浏览
1

首先,谢谢花时间;这是我发布的第一个问题!

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

提交详细信息后,下面的代码告诉firebase使用提供的电子邮件和密码创建新用户,然后在Realtime Database中的用户父级下添加其他配置文件信息 .

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

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

有没有人知道这方面的方法?我觉得好像firebase Admin API可能是一个解决方案,但我似乎无法绕过它 .

1 回答

  • 0

    如果用户已经登录并且您已经将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)
    

相关问题