Firebase从同一个孩子

时间:2016-04-18 11:18:32

标签: javascript firebase angularfire firebase-realtime-database

在我的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。

非常感谢。

0 个答案:

没有答案