Я новичок в NoSQL и Firebase. У меня есть такая база данных для "писателей" пути.
Я попытался найти любого пользователя с адресом электронной почты [email protected], используя этот код:
ref.child("writers").queryEqual(toValue: "[email protected]", childKey: "email").observeSingleEvent(of: .value, with: { snap in
print (String(describing: snap.value));
}
Но все, что у меня есть, это Optional(<null>) на консоли. Что не так с моим кодом? Я думал, что это довольно просто, но я не могу заставить его работать, несмотря на любое исправление, которое я пробовал.
Я могу успешно получить все данные писателей, если использую код:
ref.child("writers").observeSingleEvent(of: .value, with: { (snap) in
print (String(describing: snap.value));
}
Не используйте массивы в Firebase. Во-вторых, у вас есть 4 цифровых клавиши, а затем несвязанная строка ключей. Не знаю почему, но похоже, что вы создаете ключи непоследовательно. Не забудьте добавить .orderBy.





Правильный синтаксис:
ref.child("writers").queryOrdered(byChild: "email").queryEqual(toValue: "[email protected]").observeSingleEvent(of: .value, with: { snap in
...
Перегрузка, которую вы использовали, предназначена для другого (и гораздо менее распространенного) варианта использования.
Также ознакомьтесь с некоторыми другими вопросами о запросах Firebase в Swift:
Возможный дубликат Firebase Swift: queryEqualToValue от childKey не работает