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,建议参考官方文档进行完整迁移:
注意事项
- 不要混用:在同一个项目中不要同时使用 V1 和 V2 SDK
- 保持一致:所有模块(数据库、存储、云函数等)使用同一版本 SDK
- 登录态独立:V1 和 V2 的登录态是独立的,无法共享
相似问题
- Web SDK V1 和 V2 可以混用吗?
- 使用 V1 SDK 后能用 V2 SDK 吗?
- 报错 v1 sign in 怎么解决?
- Web SDK API 版本不兼容怎么办?
- 如何选择 Web SDK V1 还是 V2?
- Web SDK V1 和 V2 的区别是什么?
- 可以同时安装两个版本的 Web SDK 吗?
- V1 SDK 登录后 V2 SDK 无法使用?
- Web SDK 版本升级注意事项?
- Web SDK 登录态能否跨版本共享?