【发布时间】:2021-01-01 23:40:27
【问题描述】:
我正在使用 AWS Amplify 构建一个应用程序,其中有三个 DynamoDB 表:Users、Posts 和 Subscriptions。
- 用户可以发帖
- 用户订阅其他用户
- 如果用户
A订阅了用户B,用户A只能查看用户B的帖子
第 1 点和第 2 点很容易通过标准的 graphQL 突变实现。但我被困在如何以一种优雅的方式实现 3.。目前我所做的是使用 lambda 解析器。
给定输入“用户A 想要看到用户B”,lambda 解析器执行以下操作:
- 查询
Subscriptions表,看看是否有“用户A订阅用户B”的文档 - 如果存在这样的行,则查询
Posts表并返回文档。如果不是,则不返回任何内容。
这个逻辑需要两次往返,但由于发电机速度很快,我可以接受这种权衡。不过还有其他缺点,所以我想知道是否有更多的 Amplify-native 方式来做到这一点?也许是一些神奇的 DynamoDB 和 @auth 诡计?
谢谢!
【问题讨论】:
标签: database authentication amazon-dynamodb aws-amplify