debugging - 仅适用于在 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
})
当我运行这个应用程序时,我得到了这个:
- 未经调试的Android真机:失败
- 远程调试 JS的 Android 真机:成功
- 没有调试的IOS模拟器:成功
- 带有远程调试 JS的 IOS 模拟器:成功
问题是 JWT 令牌似乎既不是由 AsyncStorage 也不是由 AWS Auth Class 检索,我无法解决它,因为:
- 我在没有调试的情况下在 Android 真实设备上运行:不起作用。
- 我在带有调试功能的 Android 上运行:它可以工作。
所以我无法调试以查看问题所在,因为当我尝试在 Android 上调试时它可以工作。
希望有人可以帮助我。
解决方案
我在这里遇到了类似的问题。
我的问题不是当我从 中读取值时AsyncStorage
,而是当我试图保存一些值时。
当我使用远程调试器时,一切正常,但没有它Error
出现。
解决方案是将值转换为字符串,然后再将它们保存到 storage中。
推荐阅读
- reactjs - 如何在 React 中获取 url 参数
- flutter - Flutter - 如何使用类模型
- artificial-intelligence - 从视频中提取非冗余图像
- sql - Crystal Reports 未显示 SAP b1 查询
- php - 当多个字段无效时显示多条错误消息
- ios - 从选定的 tableView cell.row 传递文本以填充文本框 xcode
- java - 如何在 java 8 中转换 Multiple If Else 梯形图
- split - 如何更改 Chr(10) 以与分隔符组合?
- r - 尝试拟合一些数据,但是当我尝试运行 nls 时开始值和参数错误
- tensorflow - image_dataset_from_directory 是否一次将所有图像加载到内存中?