首页 > 解决方案 > AWS Dynamodb ..NET Core LoadAsync 不使用辅助键作为搜索键

问题描述

我们正在使用带有 .net 核心的 DynamoDb 并实现 facebook 登录。通常,我们在 db 中使用 uuid 作为用户 ID,但使用 facebook 登录,我想将 facebook 用户 ID 保存为辅助键,以便能够使用 facebook id 加载项目。

当用户使用 facebook 登录时,我将用户的 FacebookToken 字段设置为常规字段。但是,我无法使用该索引加载用户..

return await _context.LoadAsync<DbDynamoUser>(playerId,new DynamoDBOperationConfig { IndexName = "FacebookToken" });

DynamoDbTable

[DynamoDBTable("Users")]

public class DbDynamoUser 
{
    [DynamoDBHashKey]
    public string Id { get; set; }
    

    [DynamoDBGlobalSecondaryIndexHashKey]
    public string FacebookToken { get; set; }


    [DynamoDBProperty(typeof(DynamoDbUserConverter))]
    public LocalUser User { get; set; }

    public UserLogs Logs { get; set; }
    public string AuthenticationMethod { get; set; }
    public string LastDeviceUuid { get; set; }
}

即使我指定 IndexName,LoadAsync 也会使用主键作为搜索键。

动态数据库索引

标签: amazon-web-services.net-coreamazon-dynamodbfacebook-sdk-4.0

解决方案


推荐阅读