firebase - 无法在 Firebase 中创建用户配置文件
问题描述
首先,感谢您抽出宝贵时间;这是我发布的第一个问题!
我正在用 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 树
我的问题是,当新用户登录时,我找不到访问他们的个人资料信息的方法......理想情况下,我会将“用户”下每个孩子的密钥设置为用户的电子邮件:这样他们就可以登录,我可以将他们的电子邮件与他们的个人资料信息的键相匹配并以这种方式获取它。不幸的是,密钥必须是 UTF-8 编码的,并且不允许我包含“@ 或 .”。
有谁知道解决这个问题的方法?我觉得firebase Admin API 可能是一个解决方案,但我似乎无法理解它。
解决方案
在带有 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)
推荐阅读
- python - 如何根据我的代码输出在 jupyter notebook 中创建文本文件
- php - 在 PHP 中加入多个 json 文件的最有效方法
- node.js - PUT 在 POSTMAN 上不起作用,但从前端调用时可以
- java - 将两位数年份转换为四位数字,还支持一位或两位数月份
- calculated-columns - Spotfire - 基于 Spotfire 中另一列中的值计算的列
- python-3.x - ModuleNotFoundError 没有名为 onetimepad 的模块?
- c# - 当控件已经获得焦点时触发屏幕阅读器
- angular - NGXS 和 Angular:取消以前对 http 调用的请求
- python - 如何获取 sklearn.impute.IterativeImputer 中使用的回归器的属性?
- powershell - Powershell,获取共享文件的访问权限,格式化输出?