如何使用 firebase Auth 检索和处理重定向错误?

how to retrieve and handle Redirect errors using firebase Auth?

我正在使用 Firebase Auth 开发移动优先应用。 Firebase 建议使用重定向而不是弹出窗口。但是,我似乎找不到任何使用 Oauth 提供程序检索错误的示例(facebook,Google)。 Firebase 在 SignwithPopup 中有一个处理错误的例子,但是 fore redirect 它只声明:

This error is handled in a similar way in the redirect mode, with the difference that the pending credential has to be cached between page redirects (for example, using session storage).

我们在同一文档的前一节中展示了在何处进行重定向操作的错误处理:只需在 this page 中搜索 "firebase.auth().getRedirectResult()",特别是在 catch 中搜索:

firebase.auth().getRedirectResult().then(function(result) {
  if (result.credential) {
    // This gives you a Google Access Token. You can use it to access the Google API.
    var token = result.credential.accessToken;
    // ...
  }
  // The signed-in user info.
  var user = result.user;
}).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // The email of the user's account used.
  var email = error.email;
  // The firebase.auth.AuthCredential type that was used.
  var credential = error.credential;
  // ...
});

顺便说一句,添加多个身份验证提供商并完美处理 linking 帐户实际上非常棘手,因为需要考虑许多子流程(例如,如果用户想要 link 但随后登录电子邮件不匹配的帐户...)。我建议您使用 Firebase UI,它提供了一个可配置的 UI 组件,可以为您处理所有这些棘手的流程。