Javascript 与firebase中的当前用户对象交互需要输入user.user,为什么必须输入user两次?

Javascript 与firebase中的当前用户对象交互需要输入user.user,为什么必须输入user两次?,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我正在尝试添加一个注册页面,以便用户在网页(wordpress)中的firebase数据库上注册 例如,当我创建用户,然后尝试一个简单的控制台日志来检查创建的用户的uid时,如下所示: auth.createUserWithEmailAndPassword(email, password) .then(function(user){ console.log(user.uid); }); 我得到一个“未定义的”。但是

我正在尝试添加一个注册页面,以便用户在网页(wordpress)中的firebase数据库上注册

例如,当我创建用户,然后尝试一个简单的控制台日志来检查创建的用户的uid时,如下所示:

auth.createUserWithEmailAndPassword(email, password)
            .then(function(user){
                console.log(user.uid);
            });
我得到一个“未定义的”。但是当我试图通过打字来做同样的事情时

auth.createUserWithEmailAndPassword(email, password)
            .then(function(user){
                console.log(user.user.uid);
            });
它工作正常

为什么会这样

我按照文档初始化firebase,然后将对auth的引用设置为

var auth = firebase.auth();
谢谢你的帮助。我对Javascript和Firebase都是新手

createUserWithEmailAndPassword(电子邮件,密码)返回firebase.Promise,其中包含非空的firebase.auth.UserCredential

单击会显示它的结构

{
  user: nullable firebase.User,
  credential: nullable firebase.auth.AuthCredential,
  operationType: (nullable string or undefined),
  additionalUserInfo: (nullable firebase.auth.AdditionalUserInfo or undefined)
}
因此,您正在访问已命名为
user
的返回
UserCredential
对象的
user
属性

如果您愿意,您可以将
user
更改为
userCredential
,以帮助澄清它是什么,避免将来的混淆

auth.createUserWithEmailAndPassword(email, password)
.then(function(userCredential){
  console.log(userCredential.user.uid);
});