我有一个用户可以匿名使用或通过 facebook 登录的应用程序。所有这些都与 Cognito 相关联。使用应用程序时,他们调用 lambda 来保存他们喜欢的项目。我使用唯一的 cognito 身份 ID 将这些项目保存在 DynamoDB 表中。此唯一 ID 在 lambda 事件中提供;
{
...,
event.requestContext.identity.cognitoIdentityId: 'ap-..
...
}
我对如何解决这种情况有点不知所措。
T1
用户通过 Facebook 登录并保存一些项目。它们保存在 DynamoDB 表中,ID 为 ap-1。都好。
T2
用户删除该应用程序并在一个月后再次下载。这次他们跳过登录并在 id ap-2 下获得匿名访问。他们保存了更多的项目,这些项目保存在 DynamoDB 中,id 为 ap-2。
T3
用户意识到他们忘记通过 Facebook 登录,所以他们完成了 Facebook 登录。因为他们在获得 id ap-1 之前已经通过 Facebook 登录。这会将 ap-2 合并到 ap-1 中,并将 ap-1 用于所有请求。现在他们将看到从 T1 但不是从 T2 保存的所有项目。
有什么方法可以在这里合并事件或处理更新记录的东西吗?我找不到任何关于它的文档。