Amazon dynamodb 如何同步Amplify数据存储和DynamoDB之间的一对多关系?

Amazon dynamodb 如何同步Amplify数据存储和DynamoDB之间的一对多关系?,amazon-dynamodb,synchronization,offline,aws-amplify,datastore,Amazon Dynamodb,Synchronization,Offline,Aws Amplify,Datastore,我正在开发一个包含两种型号的杂货清单应用程序:产品和杂货清单。一张购物清单有许多产品,而一个产品属于一张购物清单 #schema.graphql 类型产品@型号 { id:id! groceryList:groceryList@connection(名称:“GroceryListProducts”) 名字:字符串! } 类型GroceryList@model{ id:id! 名字:字符串! 产品:[Product]@connection(名称:“GroceryListProducts”) }

我正在开发一个包含两种型号的杂货清单应用程序:产品杂货清单。一张购物清单有许多产品,而一个产品属于一张购物清单

#schema.graphql
类型产品@型号
{
id:id!
groceryList:groceryList@connection(名称:“GroceryListProducts”)
名字:字符串!
}
类型GroceryList@model{
id:id!
名字:字符串!
产品:[Product]@connection(名称:“GroceryListProducts”)
}
在DynamoDB上,据我所知,一对多关系可以使用全局二级索引进行查询,不会直接显示在DynamoDB记录上:

DynamoDB杂货店列表表:

╔═══════╦═════════╗
║ Id    ║    Name ║
╠═══════╬═════════╣
║ L1    ║ List1   ║ 
║ L2    ║ List2   ║
║ L3    ║ List3   ║ 
╚═══════╩═════════╝
╔═════════╦═══════╦════════╗
║ Id      ║ Name  ║ PID*   ║
╠═════════╬═══════╬════════╣
║ O1      ║ Orange║ L1     ║
║ O2      ║ Apple ║ L1     ║
║ O3      ║ Bacon ║ L2     ║
╚═════════╩═══════╩════════╝
DynamoDB产品列表表:

╔═══════╦═════════╗
║ Id    ║    Name ║
╠═══════╬═════════╣
║ L1    ║ List1   ║ 
║ L2    ║ List2   ║
║ L3    ║ List3   ║ 
╚═══════╩═════════╝
╔═════════╦═══════╦════════╗
║ Id      ║ Name  ║ PID*   ║
╠═════════╬═══════╬════════╣
║ O1      ║ Orange║ L1     ║
║ O2      ║ Apple ║ L1     ║
║ O3      ║ Bacon ║ L2     ║
╚═════════╩═══════╩════════╝
*商品杂货店

当我添加产品并将其保存在数据存储中时,如下所示:

const productSaved=wait DataStore.save(
新产品(产品)
)
等待DataStore.save(
GroceryList.copyOf(当前列表,已更新=>{
updated.products=[…updated.products,productSaved]
}))
数据存储上的GroceryList实例将正确显示产品子项:

//浏览器DevTools、选项卡应用程序、IndexDB、放大数据存储上显示的GroceryList项:
{
id:“L1”
名称:“列表1”
产品:[
{id:“01”,杂货店列表:{…},名称:“橙色”},
{id:“02”,杂货店列表:{…},名称:“苹果”}
]
}
但是,如果我添加与云的同步:

const subscription=DataStore.observe(Product.subscription)(msg=>{
log(msg.model、msg.opType、msg.element);
})
子项将从GroceryList数据存储实例中消失。 我怎样才能防止它发生

我想确保我可以在线和离线使用我的应用程序

提前感谢您的帮助