Firebase 功能重新加载 auth currentUser,不会在 vue 组件中刷新

Posted

技术标签:

【中文标题】Firebase 功能重新加载 auth currentUser,不会在 vue 组件中刷新【英文标题】:Firebase function reload for auth currentUser, doesn't refresh in vue component 【发布时间】:2020-08-10 04:06:33 【问题描述】:

我正在使用 reload 函数更新配置文件 url,我有一个计算属性,但这不反映更改

计算属性

computed: 
    photoUrl: function() 
      return firebase.auth().currentUser.photoURL;
    ,
  

功能

onFileChanged: async function(e) 
      this.image = e.target.files[0];
      if (this.image) 
        try 
          this.loading = true;
          const url = await saveImage(this.image, this.uploadProgress);
          await auth.currentUser.updateProfile(
            photoURL: url
          );
          await auth.currentUser.reload();
         catch (error) 
          this.setTexto("Ocurrió un error al actualizar tu foto de perfil.");
          this.setColor("error");
          this.setVisible(true);
          console.error(error);
         finally 
          this.progreso = 0;
          this.loading = false;
        
      
    

我承诺使用 Firebase 云存储上传文件。

【问题讨论】:

【参考方案1】:

另一种方法是在 data 对象中添加一个简单属性并在您的函数中对其进行更新,如下所示:

data: 
  //....
  photoUrl: null,
  //....


//...
onFileChanged: async function(e) 
      this.image = e.target.files[0];
      if (this.image) 
        try 
          this.loading = true;
          const url = await saveImage(this.image, this.uploadProgress);
          this.photoUrl = url;  // <-------
          await auth.currentUser.updateProfile(
            photoURL: url
          );
          await auth.currentUser.reload();
         catch (error) 
          //...
         finally 
          //...
        
      
    

【讨论】:

这个解决方案听起来不错,但是如果我在另一个组件中使用这些数据,我会使用 vue 的 store 吗? 是的,您可以使用 Vuex 商店。然后,您将提交一个突变以更新 Store 状态中的 photoUrl 属性(而不是执行 this.photoUrl = url;)。

以上是关于Firebase 功能重新加载 auth currentUser,不会在 vue 组件中刷新的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应应用程序中重新加载每个页面时停止 firebase re-auth()?

当我更新 ListView 上的列表时,Flutter 页面不会重新加载

每次页面重新启动时,Firebase.auth().currentUser 都会变为 null

Firebase 身份验证获取已删除的用户

Next.js 示例 Auth - 基于 auth 的重新路由,环绕其他功能

Firebase Auth 检查与 Vue-router