在 React Native 中从 Firebase 获取当前用户访问令牌

Edd*_*Edd 4 api firebase react-native firebase-authentication

我正在尝试在 React Native 应用程序中获取 Firebase 身份验证访问令牌,以便我可以对对自定义服务器的 API 调用进行身份验证。Firebase 文档说我应该使用auth().currentUser.getIdToken();但是 currentUser 返回来获取此令牌null

我尝试getIdToken()在应用程序的多个领域中使用。我知道访问令牌是生成的,因为我在使用 expo (user.stsTokenManager.accessToken) 时可以在日志中看到它。

为什么要currentUser回来null,我怎样才能得到accessToken

Edd*_*Edd 10

您需要将for包裹user.getIdToken()在里面才能使用。然后,您可以在标头中使用 jwtToken 来验证您的 API 调用。您需要导入 Firebase 配置文件才能使其正常工作。firebase.auth().onAuthStateChangeduser

let jwtToken = firebase.auth().onAuthStateChanged(function(user) {
    if (user) {
      user.getIdToken().then(function(idToken) {  // <------ Check this line
          alert(idToken); // It shows the Firebase token now
          return idToken;
      });
    }
  });
Run Code Online (Sandbox Code Playgroud)