Firebase FriendList关系

时间:2018-11-29 20:17:07

标签: firebase unity3d firebase-realtime-database

我需要显示我朋友的状态。 我找到的解决方案如下。

方法1:--------------------

结构

idToken

代码

const dialogflow = require("actions-on-google");    
const app = dialogflow({clientId: '94661...@apps.googleusercontent.com'});

app.getUserData(idToken); //this does not exists, how to have something equivalent?

方法2 -----------

friendlist:
  USER1_ID
    USER2_ID
      name: Soner
      id: USER2_ID

users:
  USER2
      name: Soner
      isonline : true
   USER1
      name: mahmut
      isonline: false

代码:

foreach(b as firebase.child(friendlist/USER1_ID) ){

firebase.ref("users").child(b).child(isonline).value();

//reult soner:online

 }

我应该使用哪种方法? 哪一个是对的? 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您通常会希望选择第一个选项,因为Firebase Realtime Database的常见建议之一是保持数据结构浅而平坦。我经常将其解释为:将每种实体类型的节点保留在其自己的顶级列表/节点下。然后,在不同的顶级列表下,您使用相同的密钥,该密钥使您可以联接每个列表中的数据。

造成这种情况的原因很多,因此,我将在下面提供一些链接,但是此处非常直接的一个链接是,您可能希望在应用程序中显示每个人的在线状态,而又不允许所有用户阅读彼此的朋友列表。由于Firebase始终加载完整的节点,因此使用第二个数据结构将是不可能的。

另请参阅: