может кто-нибудь умнее меня, скажи мне, что является более эффективным и лучшим способом получения информации
Сценарий 1. У меня есть пользовательский объект в БД со всеми путями, из которых я хочу получить данные
user: {
conversations: {
path1id: true,
path2id: true,
path3id: true,
}
}
Затем я могу использовать, затем использовать метод цикла for и использовать метод Once для каждого пути, чтобы получить соответствующую информацию.
for(let path in paths){
firebase.database().ref(/conversations/${path}).once('value')
.then(snapshot = > {
//handle data
})
}
Сценарий 2: у меня есть узел разговоров, и я назначаю зарегистрированные группы каждому пользователю следующим образом:
conversations: {
user1: {
convo1id: {
created: TIMESTAMP,
members: {
requested: {
id: 4083und98h9ns98jw9wj,
username: 'User 1',
profilepic: 'storagelink'
},
accepted: {
id: 4083und98h9ns98jw9wj,
username: 'User 1',
profilepic: 'storagelink'
}
}
},
convo2id: {
created: TIMESTAMP,
members: {
requested: {
id: fjd9ud9d9djd9dj,
username: 'User 3',
profilepic: 'storagelink'
},
accepted: {
id: 4083und98h9ns98jw9wj,
username: 'User 1',
profilepic: 'storagelink'
}
}
},
}
}
Затем я мог бы запросить на этом узле и извлечь все разговоры под любым конкретным идентификатором пользователя. Это будет означать только один запрос, однако у меня будут повторные данные при таком подходе. Очевидно, что это будет медленнее, так как я получу больше пользователей, но я не уверен, правильный ли это подход с точки зрения скорости и пропускной способности.
Спасибо всем, кто может помочь