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

在React Native中从Firebase获取当前用户访问令牌,firebase,api,react-native,firebase-authentication,Firebase,Api,React Native,Firebase Authentication,我试图在React本机应用程序中获取Firebase身份验证访问令牌,以便对自定义服务器的API调用进行身份验证。Firebase文档说我应该通过使用auth().currentUser.getIdToken()获取此令牌但是当前用户返回null 我已经尝试在应用程序的多个区域中使用getIdToken()。我知道访问令牌是在使用expo(user.stsTokenManager.accessToken)时在日志中看到的 为什么currentUser返回null以及如何获取accessToken

我试图在React本机应用程序中获取Firebase身份验证访问令牌,以便对自定义服务器的API调用进行身份验证。Firebase文档说我应该通过使用
auth().currentUser.getIdToken()获取此令牌但是当前用户返回
null

我已经尝试在应用程序的多个区域中使用
getIdToken()
。我知道访问令牌是在使用expo(user.stsTokenManager.accessToken)时在日志中看到的


为什么
currentUser
返回
null
以及如何获取
accessToken

您需要将
user.getIdToken()
包装在
firebase.auth()的内部。onAuthStateChanged
以使
user
可用。然后,可以在标头中使用jwtToken对API调用进行身份验证。您需要导入Firebase配置文件以使其正常工作

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;
      });
    }
  });
让jwtToken=firebase.auth().onAuthStateChanged(函数(用户){
如果(用户){
user.getIdToken().then(函数(idToken){//
getIdToken
返回承诺

firebase.auth()
.signiWithCredential(凭证)
。然后(异步数据=>{
const jwtToken=wait data.user?.getIdToken();
console.log(jwtToken);
})

如何将idToken传递给函数?似乎正在变为null。存在相同的问题。如何将idToken传递给保存API调用的单独函数?只需在
return
语句之前调用函数,或
将其设置为状态
然后传递给任何函数或使用
then()