VueJS 和 firebase:頁面刷新後檢查使用者是否登入
P粉680487967
P粉680487967 2023-08-28 22:02:53
0
1
530
<p>我正在使用 Vue 3 和 firebase 框架開發一個 Web 應用程式。作為 stroe,我使用 Pinia。對於身份驗證,我使用 firebase,到目前為止效果很好,用戶可以註冊並登入。使用者登入後,他的資料就會儲存在 pinia 儲存體中。 </p> <p>但是,一旦使用者登入並重新載入頁面,pinia 儲存中的資料就會遺失。如果我使用 firebase 函數 <code>onAuthStateChanged()</code> ,仍然有使用者登入。 </p> <p>我的第一個解決方案是每次啟動應用程式時呼叫 <code>onAuthStateChanged()</code> 函數,然後 pinia 儲存體會填入所需的資料。我已經嘗試在 firebase 設定檔中呼叫 <code>onAuthStateChanged()</code> 函數,但 pinia 儲存尚未在此處初始化。 </p> <p>Vue 應用程式中的哪個點必須調用 <code>onAuthStateChanged()</code> 函數,以便用戶在刷新後自動登錄,並且我可以將用戶資料寫入 Pinia 儲存? </ p>
P粉680487967
P粉680487967

全部回覆(1)
P粉195402292

我不確定您嘗試過什麼,但我知道這會起作用。當然,您可以將 onAuthStateChanged 移出您的商店,它仍然可以工作。請記住,您必須使用觀察者或計算道具來追蹤 store.user 並更新 UI。

import { getAuth, onAuthStateChanged } from 'firebase/auth';

const auth = getAuth();
onAuthStateChanged(auth, async () => {
  const store = useStore();
  store.setUser();
});


const useStore = defineStore('store', {
  state: () => ({ 
    user: null
  }),
  actions: {
    setUser() {
      // Set user here
      // this.user = ...
    }
  }
});
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!