Google app engine 将User.User_id()转换为User.email()

Google app engine 将User.User_id()转换为User.email(),google-app-engine,Google App Engine,有没有一种方法可以根据用户id导出用户的电子邮件?您可以在电子邮件和用户id之间建立关系,然后根据需要检索它。如果用户已登录,则可以轻松地分别访问这两个属性。 但是,用户id不是可以使用某种算法重建的哈希版本的电子邮件。似乎不可能从用户id派生电子邮件。如果要从用户id转到电子邮件,则必须在用户登录时存储这两个版本,然后在用户未登录时进行查找以转换。例如 class Email(db.model): '''keyed by user_id''' email=db.EmailPropert

有没有一种方法可以根据用户id导出用户的电子邮件?

您可以在电子邮件和用户id之间建立关系,然后根据需要检索它。如果用户已登录,则可以轻松地分别访问这两个属性。

但是,用户id不是可以使用某种算法重建的哈希版本的电子邮件。

似乎不可能从用户id派生电子邮件。如果要从用户id转到电子邮件,则必须在用户登录时存储这两个版本,然后在用户未登录时进行查找以转换。例如

class Email(db.model):
  '''keyed by user_id'''
  email=db.EmailProperty()

def save_user():
  u=users.get_current_user()
  k=db.Key.from_path('Email',u.user_id())
  e=Email.get(k)
  if not e:
    Email(key=k, email=u.email()).put()

def get_email_from_user_id(id):
  '''No way to derive email without a lookup.'''
  k=db.Key.from_path('Email',id)
  return Email.get(k).email # raises exception if email is not found