Firebase - многократное чтение с путевыми ссылками VS. - PullRequest
0 голосов
/ 11 сентября 2018

может кто-нибудь умнее меня, скажи мне, что является более эффективным и лучшим способом получения информации

Сценарий 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'
                }
            }
        },
    }
}

Затем я мог бы запросить на этом узле и извлечь все разговоры под любым конкретным идентификатором пользователя. Это будет означать только один запрос, однако у меня будут повторные данные при таком подходе. Очевидно, что это будет медленнее, так как я получу больше пользователей, но я не уверен, правильный ли это подход с точки зрения скорости и пропускной способности.

Спасибо всем, кто может помочь

...