Firebase好友列表关系
我需要显示我朋友的状态。 我找到的解决方案如下 方法1:--------------Firebase好友列表关系,firebase,unity3d,firebase-realtime-database,Firebase,Unity3d,Firebase Realtime Database,我需要显示我朋友的状态。 我找到的解决方案如下 方法1:-------------- users: USER2 name: Soner isonline : true friendlist USER1:USER1 USER1 name: mahmut isonline: false friendlist: USER2_ID:USER2_ID 结构 friendlist
users:
USER2
name: Soner
isonline : true
friendlist
USER1:USER1
USER1
name: mahmut
isonline: false
friendlist:
USER2_ID:USER2_ID
结构
friendlist:
USER1_ID
USER2_ID
name: Soner
id: USER2_ID
users:
USER2
name: Soner
isonline : true
USER1
name: mahmut
isonline: false
代码
方法2-------
users:
USER2
name: Soner
isonline : true
friendlist
USER1:USER1
USER1
name: mahmut
isonline: false
friendlist:
USER2_ID:USER2_ID
代码:
我应该用哪种方法?
哪一个是对的?
有什么建议吗?您通常会选择第一个选项,因为Firebase实时数据库的一个常见建议是保持数据结构浅而平。我经常这样解释:将每个实体类型的节点放在它们自己的顶级列表/节点下。在不同的顶级列表下,然后使用相同的键,这允许您加入每个列表中的数据 这有很多原因,所以我将在下面包括一些链接,但一个非常直接的原因是,你可能希望在应用程序中显示每个人的在线状态,而不允许所有用户阅读彼此的好友列表。因为Firebase总是加载完整的节点,所以对于第二个数据结构,这是不可能的 另见:
- 经典的博客文章
- 第二部分,特别是关于
- 客户端连接并不像许多开发人员想象的那么慢,因为
哪一个是正确的?
因为从来没有一个正确的解决方案。这使您的问题以意见为基础,可能会被关闭。
firebase.ref(users).orderbychield(friendlist/UserId).equalto(USER1_ID);
//RESULT soner is online