繁体   English   中英

Nuxtjs 和 Firebase Auth: await firebase.auth().currentUser 不等待?

[英]Nuxtjs and Firebase Auth: await firebase.auth().currentUser not waiting?

Nuxt.js 专注于服务器端渲染,并具有在页面组件加载之前调用一次的asyncData属性。

我正在尝试类似的东西:

async asyncData({params}) {
    // firebase.auth().onAuthStateChanged((user)=>{ // <-- this doesn't work in the asyncData property
      let user = await firebase.auth().currentUser
      let info = {}
      console.log(user)

      user.uid === null // true
}

两个类似的问题:

有似乎不适用于nuxt的解决方案......

我也试过:

function getCurrentUser(auth) {

  let userLoaded = false;
  return new Promise((resolve, reject) => {
     if (userLoaded) {
          resolve(firebase.auth().currentUser);
     }
     const unsubscribe = auth.onAuthStateChanged(user => {
        userLoaded = true;
        unsubscribe();
        resolve(user);
     }, reject);
  });
}

似乎onAuthStateChanged仅在客户端触发。 但问题是, SSR功能仅对非身份验证用户有意义,对于身份验证用户场景,不妨将 firebase 调用逻辑放入mounted钩子中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM