Skip to main content

Web SDK API V1 和 V2 不兼容问题

云开发 Web SDK 的 API V1 和 V2 版本不互通,混用会导致登录错误。

问题现象

当您在项目中同时使用 Web SDK API V1 和 V2 时,可能会出现以下错误:

  • 控制台显示 v1 sign in 错误
  • 用户无法正常登录
  • 数据库访问失败

问题原因

Web SDK API V1 和 V2 是两个独立的版本,它们的登录态、认证机制和调用方式均不兼容。因此:

  • 使用 V1 SDK 登录后,无法使用 V2 SDK 调用接口
  • 使用 V2 SDK 登录后,无法使用 V1 SDK 调用接口

两个版本的调用方式、登录态管理机制完全不同,不能混用。

解决方案

方案一:统一使用 V2 SDK(推荐)

V2 SDK 是最新版本,功能更完善,建议在新项目中使用。

// 初始化 V2 SDK
import cloudbase from '@cloudbase/js-sdk';

const app = cloudbase.init({
env: 'your-env-id'
});

// 登录
const auth = app.auth();
await auth.anonymousAuthProvider().signIn();

// 调用数据库
const db = app.database();
const result = await db.collection('users').get();

方案二:统一使用 V1 SDK

如果已有项目使用 V1 SDK,可以继续使用,但不要混用。

// 初始化 V1 SDK
import cloudbase from '@cloudbase/js-sdk/dist/cloudbase.js';

const app = cloudbase.init({
env: 'your-env-id'
});

// 登录
await app.auth({
persistence: 'local'
});

// 调用数据库
const db = app.database();
const result = await db.collection('users').get();

方案三:项目迁移

如果需要从 V1 迁移到 V2,建议参考官方文档进行完整迁移:

注意事项

  1. 不要混用:在同一个项目中不要同时使用 V1 和 V2 SDK
  2. 保持一致:所有模块(数据库、存储、云函数等)使用同一版本 SDK
  3. 登录态独立:V1 和 V2 的登录态是独立的,无法共享

相似问题

  1. Web SDK V1 和 V2 可以混用吗?
  2. 使用 V1 SDK 后能用 V2 SDK 吗?
  3. 报错 v1 sign in 怎么解决?
  4. Web SDK API 版本不兼容怎么办?
  5. 如何选择 Web SDK V1 还是 V2?
  6. Web SDK V1 和 V2 的区别是什么?
  7. 可以同时安装两个版本的 Web SDK 吗?
  8. V1 SDK 登录后 V2 SDK 无法使用?
  9. Web SDK 版本升级注意事项?
  10. Web SDK 登录态能否跨版本共享?

相关文档