【问题标题】:createUserWithEmailAndPassword VUEJS error updating user profilecreateUserWithEmailAndPassword VUEJS 错误更新用户配置文件
【发布时间】:2020-06-05 23:39:06
【问题描述】:

我也在开发一个 Firebase 应用程序时遇到这个问题,我的意图是创建一个用户并使用 firebase 方法 createUserWithEmailAndPassword 使用名称更新他的个人资料。 我改进了这个过程,最终它起作用了,但也抛出了一个错误,上面写着:

未捕获的类型错误:无法读取未定义的属性用户
在 eval (index.js?xxxx)
在例如 (auth.esm.js?xxx)
在 kc (auth.esm.js?xxxxx)
在 gc (auth.esm.js?xxxxxx)
在 B.k.Zb (auth.esm.js?xxxxxx)
在 Qb (auth.esm.js?xxxx)

尽管已经修改了用户信息,但我需要刷新页面以使此错误消失。 这是我的代码的一部分:

        signUserUp({ commit }, payload) {
           commit("settingLoader", true);
           firebase
             .auth()
             .createUserWithEmailAndPassword(payload.email, payload.password)
             .then(() => {
               let user = firebase.auth().currentUser;
               console.log(user);
               user
                 .updateProfile({
                   displayName: payload.name
                 })
                 .then(usermod => {
                     const User = {
                     id:usermod.user.uid,              undefined usermod
                     email:usermod.user.email,         undefined usermod
                     name:usermod.user.displayName     undefined usermod
                   };
                   commit("settingUserIn", User);
                   commit("settingLoader", false);
                 });
             })
             .catch(error => {
               console.log(error);
               commit("settingLoader", false);
             });
         }

然后错误确实引用了 user.uid、user.displayName 和 user.email 的最终未定义的“usermod”。 关于我所缺少的任何建议? 提前谢谢!!

【问题讨论】:

    标签: javascript firebase vue.js authentication vuex


    【解决方案1】:

    https://firebase.google.com/docs/reference/js/firebase.User#updateprofile

    Firebase 的 user.updateProfile 方法返回一个 void 承诺,这意味着它返回一个没有值的承诺。

    您仍然可以访问 then 中的 user 变量,所以为什么不将其更改为

    ...
       user
                     .updateProfile({
                       displayName: payload.name
                     })
                     .then(() => {
                         const User = {
                         id: user.uid,              
                         email: user.email,        
                         name:user.displayName
                       };
                       commit("settingUserIn", User);
                       commit("settingLoader", false);
                     });
    ...
    

    【讨论】:

      猜你喜欢
      • 2016-01-03
      • 2018-12-27
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多