在Appwrite集合创建文档时遭遇documentID参数无效问题求助
解决Appwrite创建文档时的documentId参数错误
先看你的代码:
const read = await this.databases.createDocument(config.databaseID, config.userReadCollectionID, JSON.stringify(data),ID.unique());
问题核心是参数顺序完全颠倒了。Appwrite的createDocument方法参数顺序为:
- 数据库ID
- 集合ID
- 文档ID(对应
ID.unique()) - 文档数据(原始对象,无需JSON序列化)
你把序列化后的JSON字符串当成文档ID传入,这必然违反文档ID的规则(长度超36、包含特殊字符),所以哪怕截断ID.unique()也没用——你从一开始就传错了参数位置。
正确写法:
// 直接传入data对象,无需手动序列化 const read = await this.databases.createDocument( config.databaseID, config.userReadCollectionID, ID.unique(), data );
额外说明:
- 若无需自定义文档ID,除了
ID.unique(),还可以直接传'unique',Appwrite会自动生成合规的唯一ID - 文档数据直接传JavaScript对象即可,Appwrite内部会自动处理序列化逻辑
内容的提问来源于stack exchange,提问作者electroo096
相关产品推荐
相关产品推荐

