amazon-web-services - 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 也会使用主键作为搜索键。
解决方案
推荐阅读
- tsql - 如何根据日期选择增加计数器
- javascript - 如何在画布元素中获取整个图像?
- express - 如何使用 express-validator 在单独的文件中实现验证
- java - 如何使用 Android Studio 从 Firebase 实时数据库中的节点检索特定数据?
- java - 子类作为父类的返回类型
- google-apps-script - 创建按钮以添加带有今天日期的新行并空白其他字段
- python - 如何从具有相对路径的包内的模块内部打开文件?
- ruby-on-rails - 成功构建 Rails 应用程序并将其部署到 Heroku 后出现 NPM 错误
- mysql - 如何将用户的排名与他在 SQL 表中的分数一起存储在一个级别中
- java - Spring boot、JOOQ 和 Flyway 如何一起使用?