在我的Firebase中,我有用户和朋友的想法。
我不确定针对用户存储和检索朋友的最佳解决方案是什么。
目前,我有一个用户节点,每个用户都存储了一个来自社会认证的唯一ID。
在阅读了关于存储数据而不是嵌套数据之后,我已经提出了这个问题。每个用户都有一个“朋友”节点,其中包含另一个用户的唯一ID(见下文)
"users" : {
"facebook:10207817038895574" : {
"appearOffline" : false,
"avatar" : "https://scontent.xx.fbcdn.net/hprofile-xap1/v/t1.0-1/p100x100/10314019_10207798442030664_281467953303549494_n.jpg?oh=ac439386757bf533b56a7ea92022e304&oe=57732581",
"email" : "chris-barnett@live.co.uk",
"friends" : {
"google:110510990218136599589" : true
},
"id" : "facebook:10207817038895574",
"lastActive" : "2016-04-18T15:11:16.463Z",
"location" : {
"lastUpdate" : "",
"lat" : 0,
"lng" : 0
},
"name" : "Chris Barnett",
"status" : "Offline"
},
"google:110510990218136599589" : {
"appearOffline" : false,
"avatar" : "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg",
"email" : "app.hub.cb@gmail.com",
"friends" : {
"facebook:10207817038895574" : true
},
"id" : "google:110510990218136599589",
"lastActive" : "2016-04-18T14:48:23.238Z",
"location" : {
"lastUpdate" : "",
"lat" : 0,
"lng" : 0
},
"name" : "Hub App",
"sentFriendRequests" : {
"twitter:95970727" : false
},
"status" : "Offline"
},
"twitter:95970727" : {
"appearOffline" : false,
"avatar" : "https://pbs.twimg.com/profile_images/692823737683578883/RxMpiuco_normal.jpg",
"email" : "-",
"id" : "twitter:95970727",
"lastActive" : "2016-04-18T14:30:40.160Z",
"location" : {
"lastUpdate" : "",
"lat" : 0,
"lng" : 0
},
"name" : "Chris Barnett",
"receivedFriendRequests" : {
"google:110510990218136599589" : false
},
"status" : "Offline"
}
}
为用户显示每位朋友的所有数据的最佳方法是什么?目前,我必须下载整个用户节点,并检查每个用户唯一ID是否在“朋友”的用户列表中,如果是,则在我的视图中显示他们的数据。我想这对于少量用户来说是好的,但是如果这是规模的,那么我想它会效率很低?
我正在使用JavaScript SDK。
非常感谢。