firebaseui signInSuccess 在回调中重定向

hum*_*ont 6 firebase reactjs firebase-authentication firebaseui

使用 ReactJS Web 和 FirebaseUI Auth。

我正在尝试创建一个包含登录用户的 uid 的 signInSuccessUrl: /users/${userId}

我的假设是这需要在回调中定义,但我似乎无法使其工作。

目前,它默认重定向到signInSuccessUrl,而不是使用回调...

任何帮助深表感谢!

const uiConfig = {

  signInFlow: 'popup',

  signInSuccessUrl: '/',

  signInOptions: [
    firebase.auth.GoogleAuthProvider.PROVIDER_ID,
    firebase.auth.FacebookAuthProvider.PROVIDER_ID,
    { provider: firebase.auth.EmailAuthProvider.PROVIDER_ID,
      requireDisplayName: true
    },
  ],

  // the area where i assume something is going wrong...
  callbacks: {
    signInSuccess: function(currentUser, credential, redirectUrl) {
      const userId = currentUser.uid;
      redirectUrl = `/users/${userId}`;
      return false
    },
  }
};
Run Code Online (Sandbox Code Playgroud)

boj*_*eil 7

redirectUrl不是你想的那样。signInSuccessUrl如果查询参数附加到当前页面,则它会填充查询参数的内容。它提供了一种在登录流程结束时获取该 URL 的简单方法,如果您使用 accountchooser.com,则很难获取该 URL。

要获得您想要的行为,请将代码更改为以下内容:

signInSuccess: function(currentUser, credential, redirectUrl) {
  const userId = currentUser.uid; 
  // Manually redirect.
  window.location.assign(`/users/${userId}`);
  // Do not automatically redirect.
  return false;
},
Run Code Online (Sandbox Code Playgroud)