其给定的未定义。无法从Firebase检索名称
其给定的未定义。无法从Firebase检索名称
我想在登录后从Firebase获取用户数据。当我从数据库中获取名称时,它提供的值未定义。为什么?
var user = firebase.auth().currentUser;
if(user != null ){
var email_id = user.email;
var uid = user.uid;
var name = user.userName;
var user = user;
document.getElementById("user_para").innerHTML = "Welcome User : " + email_id;
document.getElementById("user_para1").innerHTML = "Welcome User : " + uid;
document.getElementById("user_para2").innerHTML = "Welcome User : " + name;
}
回答如下:请记住,firebase身份验证仅保存以下数据:
email: '[email protected]',
emailVerified: false,
phoneNumber: '+11234567890',
password: 'secretPassword',
displayName: 'John Doe',
photoURL: 'http://www.example/12345678/photo.png',
disabled: false
因此user.userName不存在。
您可以使用displayName保存用户名,但是如果您真的使用它来保存名称,则可以在firebase实时数据库中创建一个称为用户的节点,您可以在其中基于UID保存用户名,如下所示:] >
users ->akdjf231dkeimdla ->username: jamesbond007
您编写的代码可能是:
var user = firebase.auth().currentUser; if(user != null ){ var email_id = user.email; var uid = user.uid; var name = user.displayName; document.getElementById("user_para").innerHTML = "Welcome User : " + email_id; document.getElementById("user_para1").innerHTML = "Welcome User : " + uid; document.getElementById("user_para2").innerHTML = "Welcome User : " + name; firebase.database().ref('/users/' + uid).once('value').then(function(snapshot) { //Here are reading the username from the database var username = snapshot.val().username; }); }
如果使用Firebase实时数据库,请记住添加Firebase实时数据库库。
有关更多信息:https://firebase.google/docs/auth/admin/manage-users
最新文章
- rowid与rownum的含义是什么?
- linux的s权限和t权限
- [林达华]介绍几本数学书
- Service Principal 介绍
- Azure App object和Service Principal
- VSS使用技巧
- Linux 磁盘管理
- 图解Linux中EXT4与EXT3的区别
- Linux中EXT3与EXT4的区别!
- Linux下网络流量实时监控
- 中国剩余定理 (51nod 1079)
- 这些响应式网页测试工具确保你的设计万无一失
- Python try...except...时捕获异常时具体文件和行数
- 在Python中,可以使用try
- 基于直方图的图像增强算法(HE、CLAHE)之(二)
- gets函数用法
- LOCALDB