在React Native中从Firebase获取当前用户访问令牌
我试图在React本机应用程序中获取Firebase身份验证访问令牌,以便对自定义服务器的API调用进行身份验证。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
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()