Проверка имени пользователя перед регистрацией Firebase - PullRequest
0 голосов
/ 18 мая 2019

После использования snapshot.exists () имя пользователя всегда будет отображаться как доступное при регистрации. Как я могу изменить свой код, чтобы правильно проверить, было ли уже занято имя пользователя?

Вот фрагмент json в разделе "пользователи" в базе данных:

{
  "UserID#" : {
  "credentials" : {
  "name" : "testuser",
  },
 }
}  

Мой код в настоящее время выглядит так:

let usersDB = Database.database().reference()
var taken = false
  usersDB.child("users").child("credentials").queryOrdered(byChild:"name").queryEqual(toValue: username.lowercased()).observeSingleEvent(of: .value, with: { (snapshot) in

        if snapshot.exists() {
            taken = true
            print("Username is not available.")
            usernameAlert()
        } else { 
          print("User is available")
        }

Неважно, если имя пользователя уже занято в базе данных, снимок скажет, что он не существует.

Решения, которые я пробовал безуспешно: проверить, существует ли имя пользователя в Firebase Запрос пользователей в Firebase, чтобы проверить, существует ли имя пользователя во время процесса регистрации Firebase запрашивает уникальное имя пользователя swift Проверьте, существует ли пользователь с именем пользователя, используя Swift и Firebase Swift & Firebase | Проверка, существует ли пользователь с именем пользователя

1 Ответ

1 голос
/ 18 мая 2019

Теперь вы проверяете под каждым дочерним узлом /users/credentials свойство с именем name. Вместо этого вам нужно проверить каждый дочерний узел /users на свойство в credentials/name, что вы делаете с:

usersDB.child("users").queryOrdered(byChild:"credentials/name").queryEqual(toValue: ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...