/ / swift firebase отримує весь об'єкт, у якого дочірній об'єкт має однаковий ключ - swift, firebase, firebase-database

swift firebase витягує всі об'єкти, що у дитини об'єкта є один ключ - swift, firebase, firebase-database

Нижче мій firebase і код, я хотів би отримати всі дії, в яких є ключ John John всередині User. сс

let ref = FIRDatabase.database().reference().child("activities/")
ref.queryOrderedByChild("User").queryEqualToValue("John").observeSingleEventOfType(.Value,
withBlock:{
(snapshot) in

for record in snapshot.children
{

}
})

Відповіді:

0 для відповіді № 1

Це не працює, оскільки у вашому запиті ви намагаєтеся виконати всі дії, що мають атрибут User == "John" коли реальною цінністю Користувача є такий Об'єкт:

{
"John": {
"age": 21
}
}

Щоб вирішити цю проблему, слід змінити структуру даних, створивши вузол, де ви зберігаєте всіх своїх користувачів і зберігаєте users/userID/activities лише ідентифікатор діяльності. Наприклад, це був би кращий спосіб структурувати ваші дані:

{
"activities": {
"cycling": {
"users": {
"user1": true,
"user2": true
}
},
"running": {
"users": {
"user1": true
}
}
},
"users": {
"user1": {
"name": "John",
"age": 21,
"activities": {
"cycling": true,
"running": true,
}
},
"user2": {
"name": "Tim",
"age": 20,
"activities": {
"cycling": true
}
}
}
}

Тоді можна використовувати Повідомте мене, якщо це допомогло;)