HarmonyOS鸿蒙Next中Auth获取当前用户报错
HarmonyOS鸿蒙Next中Auth获取当前用户报错 下面是我执行的代码:
try {
const user = await auth.getCurrentUser()
console.log("[user]: " + JSON.stringify(user));
if (user != null) {
let authProvider = auth.getAuthProvider();
cloudCommon.init({
region: cloudCommon.CloudRegion.CHINA,
authProvider: authProvider,
functionOptions:{timeout:10*1000},
storageOptions:{mode:request.agent.Mode.BACKGROUND, network:request.agent.Network.ANY},
databaseOptions:{schema:"schema.json", traceId:"Mono"}
})
AppStorage.setOrCreate('user', user)
router.replaceUrl({ url: 'pages/MainPage' })
} else {
router.replaceUrl({ url: 'pages/LoginPage' })
}
} catch (err) {
console.error(`Failed to auth , Code: ${err.code}, message: ${err.message}`);
}
然后,报错了Failed to auth , Code: undefined, message: Unexpected end Text in JSON。
“[user]:”这个log没有输出,应该是await auth.getCurrentUser()里面出的err,有谁遇到过吗
7 回复
您好,能否提供下日志呢,以便进一步定位分析?
更多关于HarmonyOS鸿蒙Next中Auth获取当前用户报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我在构建最小demo复现问题的时候突然正常了。。。后续要是再出现这种情况,我会及时保存并提交日志的,辛苦了。
HarmonyOS的分布式技术让我实现了跨设备的无缝协作,工作效率翻倍。
昨天复现了,忘记打日志了,具体情况是云数据库更新时候报错,超出String限制的200长度,然后Auth就出问题了,没有登陆的情况下get当前获得null正常,登陆后,重进应用,启动页面获取当前用户时,就会报Json的错误。
可以检查一下:
- auth 是否init了呢?
例子
const file = context.resourceManager.getRawFileContentSync('agconnect-services.json');
const json: string = buffer.from(file.buffer).toString();
auth.init(context, json);
- agconnect-services.json 配置文件是否是标准json格式
init了,都是采用文档的的代码,json是agc下载的放在指定位置了,就是第二次进应用会报错,第一次不会。
在HarmonyOS鸿蒙Next中,获取当前用户信息时出现报错,可能由以下原因导致:
- 权限未配置:确保在
config.json
中已声明ohos.permission.GET_BUNDLE_INFO
权限。 - 未正确初始化Auth SDK:检查是否已正确初始化Auth SDK,并确保调用
getCurrentUser
方法前已完成初始化。 - 用户未登录:如果用户未登录,调用
getCurrentUser
会返回空或报错,建议先检查登录状态。 - API调用错误:确认使用的API版本与鸿蒙Next兼容,并检查参数传递是否正确。
建议根据错误日志排查具体问题,确保权限、初始化和登录状态正确。