我是 AWS Amplify 和 Flutter 的新手。我正在关注这个文档来建立一对多的关系。
我的schema.graphql
文件看起来像这样。
type Profile @model @auth(rules: [{allow: public}]) {
id: ID!
photos: [Photo] @hasMany(indexName: "byProfile", fields: ["id"])
}
type Photo @model @auth(rules: [{allow: public}]) {
id: ID!
profileID: ID! @index(name: "byProfile", sortKeyFields: ["index"])
index: String!
path: String!
profile: Profile! @belongsTo(fields: ["profileID"])
}
我保存了这样的数据并验证照片和个人资料记录是否正确存储在表中。
void updateMorePhoto(List<String> photoPaths) async {
for (int i = 0; i < photoPaths.length; i++) {
final imageKey = await _storageRepo.uploadPhoto(_profile!.id, File(photoPaths[i]), i);
Photo _photo = Photo(
index: i.toString(),
path: imageKey,
profile: _profile! //_profile is instantiated properly in other methods and stored in DB already.
);
await Amplify.DataStore.save(photo);
}
}
但是当我尝试使用类似于文档显示的内容来查询照片时,我得到了 0 条记录。
Future<List<Photo>> getPhotos(String userId) async {
final photos = await Amplify.DataStore.query(Photo.classType, where: Profile.ID.eq(userId));
return photos;
}
任何想法为什么会发生这种情况?
感谢。