簡體   English   中英

createUserWithEmailAndPassword VUEJS 更新用戶配置文件時出錯

[英]createUserWithEmailAndPassword VUEJS error updating user profile

我也在開發一個 firebase 應用程序有這個問題,我的目的是創建一個用戶並使用 firebase 方法 createUserWithEmailAndPassword 用一個名稱更新他的個人資料。 我改進了這個過程,最終它起作用了,但也拋出了一個錯誤,上面寫着:

未捕獲的類型錯誤:無法讀取未定義的屬性用戶
在 eval (index.js?xxxx)
在例如(auth.esm.js?xxx)
在 kc (auth.esm.js?xxxxx)
在 gc (auth.esm.js?xxxxxx)
在 BkZb (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”。 關於我缺少什么的任何建議? 提前致謝!!

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);
                 });
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM