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的错误。

可以检查一下:

  1. auth 是否init了呢?

例子

const file = context.resourceManager.getRawFileContentSync('agconnect-services.json');
const json: string = buffer.from(file.buffer).toString();
auth.init(context, json);
  1. agconnect-services.json 配置文件是否是标准json格式
init了,都是采用文档的的代码,jsonagc下载的放在指定位置了,就是第二次进应用会报错,第一次不会。

在HarmonyOS鸿蒙Next中,获取当前用户信息时出现报错,可能由以下原因导致:

  1. 权限未配置:确保在config.json中已声明ohos.permission.GET_BUNDLE_INFO权限。
  2. 未正确初始化Auth SDK:检查是否已正确初始化Auth SDK,并确保调用getCurrentUser方法前已完成初始化。
  3. 用户未登录:如果用户未登录,调用getCurrentUser会返回空或报错,建议先检查登录状态。
  4. API调用错误:确认使用的API版本与鸿蒙Next兼容,并检查参数传递是否正确。

建议根据错误日志排查具体问题,确保权限、初始化和登录状态正确。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!