Firebase-具有路径引用的多次读取VS查询节点?

时间:2018-09-11 16:59:27

标签: json firebase react-native firebase-realtime-database nosql

能比我更聪明的人告诉我哪种方法更有效地获取信息

场景1:我在数据库中有一个用户对象,其中包含我要从中获取数据的所有路径

user: {
    conversations: {
        path1id: true,
        path2id: true,
        path3id: true,
    }
}

然后我可以使用for循环方法,然后在每个路径上使用一次方法来获取相关信息。

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'
                }
            }
        },
    }
}

然后我可以在此节点上查询并获取任何特定用户ID下的所有对话。这仅意味着一个请求,但是我将使用这种方法重复数据。显然,这会随着我获得更多用户而变慢,但是从速度和带宽的角度来看,我不确定这是否是正确的方法。

感谢任何能提供帮助的人

0 个答案:

没有答案