2017-02-07 19 views
0

Я хочу реализовать мелкую структуру данных в моей базе данных Firebase. В этом случае у меня есть два дочерних узла. Первый дочерний узел (users) имеет идентификаторы пользователя со списком идентификаторов элементов из второго дочернего узла (items).База данных Firebase, извлекающая объекты из дочернего узла A, указанные в дочернем узле B

Как заполнить UITableView/RecyclerView элементами из списка элементов, указанными в списке пользователей? Каждый зарегистрированный пользователь имеет свои собственные элементы, и я хочу получить их из списка items. Можно ли это сделать с FirebaseUI?

Решение может прийти для любой поддерживаемой платформы, я просто хочу получить эту идею.

{ 
 
    "users" : { 
 
    "97csAjE3dIZxZ5t3LbgxbaSOgxl2" : { // userID 
 
     "TQjEnGjiRNsYL9" : { // each key is an itemID 
 
     "etc" : "..." 
 
     }, 
 
     "VPHYi6xhrYsAwK" : { 
 
     "etc" : "..." 
 
     }, 
 
     "WbnrFVDdfB9iJj" : { 
 
     "etc" : "..." 
 
     }, 
 
     "xB9UgakhHkNzid" : { 
 
     "etc" : "..." 
 
     } 
 
    } 
 
    }, 
 
    "items" : [ { 
 
    "_id" : "vCG3furXeUnZpK", // Eventually I'll make this _id into the item key 
 
    "etc" : "..." 
 
    }, { 
 
    "_id" : "WbnrFVDdfB9iJj" 
 
    }, { 
 
    "_id" : "xB9UgakhHkNzid" 
 
    }, { 
 
    "_id" : "VPHYi6xhrYsAwK" 
 
    }, { 
 
    "_id" : "TQjEnGjiRNsYL9" 
 
    }, { 
 
    "_id" : "Bor6VhCyqxZHpb" 
 
    }, { 
 
    "_id" : "iQnMmNy2fbrvYn" 
 
    } ] 
 
}

+0

Можете ли вы показать мне JSon структуру данных из firebase? –

+0

Просьба поделиться фрагментом фактического JSON, о котором вы спрашиваете (в виде текста, который вы можете получить, щелкнув Экспорт JSON в вашей [Консоль базы данных Firebase] (https://console.firebase.google.com/project/_/базы данных/данные /)). Также было бы желательно, если вы покажете, что вы уже пробовали, чтобы мы могли связать ответы. –

+0

@JdPrajapati Я добавил фрагмент JSON – Ronen

ответ

1

сначала получите все ItemID для текущего пользователя и сохраните идентификатор где-нибудь.

let itemIDArray = [String]() 

теперь для каждого элемента ид получить деталь элемента, используя следующий код

// database reference 
ref.child("items").child(itemID).observeSingleEvent(of: .value, with: {(snapshot) in 

} 
0

Вы можете иметь возможность получить данные для конкретного пользователя, используя firebase состояние с дочерним узлом.

database.child(Table). 
     orderByChild("user/id") 
     .equalTo("somevalue").