【发布时间】:2015-05-31 21:41:27
【问题描述】:
用户可以通过三种方式登录我们的服务:
- 登录名和密码
- 谷歌+
- 脸书
我想将所有这些用户 ID 保存在一个实体中。为了避免 id 之间的冲突,例如Google 和 Facebook 会为 id 添加前缀(分别为g- 和f-)。目前,对于使用标准登录的用户,App Engine 会生成一个唯一的 Long 值(使用 Objectify 将 @Id Long 值设置为 null 作为 id)。
要将所有内容保存在一个实体中,键的类型必须相同,应为String。 Objectify 中没有为String 自动生成密钥的选项。
我需要为给定的实体生成唯一的Long 值,该值将以c-(自定义登录)为前缀。这会给String id 类似于谷歌和Facebook 的id。我搜索了 Objectify 的代码,但没有发现与为 null Long 注释为 @Id 的字段生成唯一的 Long id 相关。
【问题讨论】:
-
如果是不同的域,如果它们有 id 冲突又何必呢?如果它是同一个域 - 您将获得 uniq id,只需将用户类型输入某个字段
标签: google-app-engine objectify google-cloud-datastore