Как я могу реализовать проверку доступности имени пользователя в движке приложения Google? - PullRequest
1 голос
/ 31 марта 2010

Когда кто-то подписывается на мой сайт, он должен зарегистрироваться с уникальным именем пользователя. Мой текущий псевдокод для этого:

if(datastore.nameIsAvailable(name)){
    datastore.createUser(name);
}

Как мне убедиться, что в промежутке времени, когда nameIsAvailable возвращает true и createUser завершен, другой экземпляр моего приложения не создает пользователя с таким именем?

1 Ответ

2 голосов
/ 31 марта 2010

Вы можете сделать запрос для имени:

appuser = AppUser.all().filter('name =', name).get()
if appuser:
  # user already has this name
else:
  # it's all yours!

... или, что еще лучше, имя пользователя должно быть ключевым именем для вашего AppUser:

appuser = AppUser.get_by_key(name)
if appuser:
  # user already has this name
else:
  # it's all yours!

... и даже лучше:

appuser = AppUser.get_or_insert(name)
# appuser is now either the existing user with this name,
# or a new user with this name!

Наличие вашего имени в качестве ключевого имени объекта означает, что оно всегда и всегда будет уникальным, а поиск пользователя по его имени будет максимально быстрым.

(Предполагается, что вы используете Python, если нет, я могу добавить пример Java, но идея та же)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...