首先,感谢您抽出宝贵的时间;这是我的第一个问题!
我正在用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编码的,不允许我包含'@或。
有人知道解决这个问题的方法吗?我觉得firebase Admin API可能是一个解决方案,但我似乎无法全力以赴。
答案 0 :(得分:0)
在firebase的react-native内部,如果他们的用户已经登录并且您已经将firebase与redux集成,则可以使用此行在redux内部访问当前用户信息
state.firebase.profile
根据我的建议,我认为最好是整合 react-native应用程序+ react-native-firebase + react-redux-firebase
因此,您无需使用网络Firebase函数,因为它已经存在于道具中。
如果用户创建后需要更新配置文件,则可以使用类似的
this.props.firebase.auth().createUserAndRetrieveDataWithEmailAndPassword(email, password).then((user) => {
this.props.firebase.updateProfile(
{
name: 'Hazim',
age: 24,
mode: 'Rampage'
}
)
}).catch((error) => {
//Error value
})
在任何组件中,您都可以使用connect函数获取当前用户信息。
class Home extends Component {
}
export default compose(
firebaseConnect(),
connect( state => {
profile: state.firebase.profile
})
)(Home)