仅适用于 Android 上的远程调试 JS



我正在使用 AsyncStorage 来存储来自 AWS 的 JWT 令牌,但我想澄清一个意外的行为。

这是我当前的代码:

const retrieveJwt = async () => {
try {
const value = await AsyncStorage.getItem('jwt');
if (value !== null) {
return value;
}
else{      
let user = await Auth.currentAuthenticatedUser();
let jwt = user.signInUserSession.accessToken.jwtToken;
return jwt
}
} catch (error) {
// Error retrieving data
let user = await Auth.currentAuthenticatedUser();
let jwt = user.signInUserSession.accessToken.jwtToken;
return jwt
}
}
// AppSync init
const client = new Client({
url: AppSync.graphqlEndpoint,
region: AppSync.region,
auth:{
type: 'AMAZON_COGNITO_USER_POOLS',
jwtToken: async () => await retrieveJwt(),
},
disableOffline: true
})

当我运行此应用程序时,我得到了这个:

  • 安卓真实设备没有调试:失败
  • 安卓真实设备与远程调试JS:成功
  • 无需调试的IOS模拟器:成功
  • IOS模拟器与远程调试JS:成功

问题是似乎 JWT 令牌既没有被 AsyncStorage 也没有被 AWS Auth Class 检索,我无法解决它,因为:

  1. 我在没有调试的情况下在Android真实设备上运行:不起作用。
  2. 我在安卓上运行调试:它可以工作。

所以我无法调试以查看出了什么问题,因为当我尝试在 Android 上调试时它可以工作。

希望有人能帮助我。

我在这里遇到了类似的问题。

我的问题不是当我从AsyncStorage中读取值时,而是当我试图保存一些值时。

当我使用远程调试器时,一切正常,但没有它,就会出现Error

解决方案是在将值保存到存储之前将其转换为字符串

最新更新