Я ищу доступ к вложенным данным JSON из базы данных Firebase для использования в listView
, это то, что я применил ко всему моему приложению, но теперь у меня возникают проблемы с доступом к дочерним элементам данных с динамическими свойствами.
Экспорт моих данных JSON из моей базы данных:
{
"T&G Canary Wharf" : {
"Administrator" : {
"1550633367665" : {
"date" : "2019-02-12T12:00:00.000",
"details" : "Full Day",
"name" : "Edward Lawrence",
"status" : "pending"
},
"1550633370715" : {
"date" : "2019-02-13T12:00:00.000",
"details" : "Full Day",
"name" : "Edward Lawrence",
"status" : false
},
"1550845072137" : {
"date" : "2019-02-12T12:00:00.000",
"details" : "Full Day",
"name" : "Katie Prescott ",
"status" : 1
},
},
"Stylist" : {
"1551222170677" : {
"date" : "2019-02-19T12:00:00.000",
"details" : "Full Day",
"name" : "Stylist Stylist",
"status" : "pending"
}
}
}
}
Для пользователя приложения group
(в приведенном выше примере T & G Canary Wharf) всегда будет установлен, ноsubgroup
(в примере «Администратор и стилисты») является динамическим для администраторов, и вот где я борюсь,
Мой код для моей базы данных Firebase приведен ниже:
Я используюfelgo (ранее v-play), ссылка на документацию по Firebase:
Плагин Felgo Firebase
App {
property var adminModel: []
property var groupName //the group name is assigned onLoggedIn, in this example group name === T&G Canary Wharf
FirebaseDatabase {
onLoggedIn: {
firebaseDb.getValue("groups" + "/" + groupName, {
orderByValue: true
}, function(success, key, value) {
if(success){
console.log("ADMIN MODEL: " + JSON.stringify(value))
adminModel = value // my array where I intend to push the data too
}
})
}
}
}
Я читаю;
доступ / обработка вложенных объектов, массивов или JSON
(кстати, очень полезно), в частности раздел Что делать, если имена свойств являются динамическими, а я не знаюих заранее?
Я могуn создать две записи списка, из Administrator
и Stylist
(подгруппы, но где дочерний ключ этого также является динамическим (время создания записи, например: "1550633367665"), я не могу продолжить?
для создания этой модели у меня есть код:
ListPage {
id: adminPage
model: Object.keys(adminModel)
delegate: SwipeOptionsContainer {
id: container
rightOption: SwipeButton {
anchors.fill: parent
backgroundColor: "red"
icon: IconType.trash
onClicked: {
container.hideOptions()
}
}
SimpleRow {
id: userRow
width: parent.width
text: modelData
}
}
}
У меня вопрос
Как я могу создать listView
с делегатамиявляясь любым объектом, содержащим "status" : "pending"
- выполняется в других областях с использованием цикла if (value[i].status === pending) { arr.push({...})}
, но пока subgroup (Stylist/Administrator)
неизвестен, из приведенного выше примера базы данных будет 2 элемента списка, но на самом деле он будет содержать гораздо большенесколько subGroup
х