2016-10-27 115 views
-1

那么我们有一个问题。我们对firebase很陌生,在尝试在一个新数据库中获得一些FK(或其他数据库的引用)时遇到了一些问题。如何在Firebase数据库中获取嵌套对象

firebase

领域用户

我想有指向表用户。所以,当我试图让从表中的数据帐户上的用户ID &检查我应该能够得到而不是使user_tracklist 2查询的

回答

2

您可以保存内部accounts/{accountId}/usertracklist节点,所以你要去有tracklist两个副本,一个在用户内部,另一个在帐户端点内。

也保存accountId内部,以便能够对端点accounts/{accountId}/user/trackinglist更新的trackinglist副本,当一些变化与trackinglist实体发生的终点users

+0

那么这就是我不想存储数据两次的问题。我只是想在我的桌面用户中引用Refference Key,当数据变大时,存储数据两次会导致数据太多。我只是想知道,如果我可以在该领域得到一个参考 –

+1

在这种情况下,你必须做第二次请求'用户',没有办法存储一些引用,这会让你'tracklists',唯一的选择是复制vs '做两个请求'。 我个人更喜欢重复的,因为如果你有很多数据可能会导致性能问题,你必须得到重复使用,nosql数据库是为了这个目的,在这里我们没有连接,外键像我们在sql数据库。 –

0

请出relational DB世界。 firebase-database没有JOIN,WHERE子句的概念。它适用于JSON Objects的概念。

请记住:

  1. Firebase表明非规范化你的数据尽可能你可以做。她喜欢重复的数据

    参考:Denormalizing Your Data is Normal

  2. Firebase使用Sockets,你建立连接一次,然后管道您的查询(给我一个帐户,现在把我账户的用户,等等等等等等)。所以如果你需要的话,不用担心做多个查询。

Refer to this SO Question

在你的数据结构,你试图压平/非规范化的数据,但

更改此:

user:"{deftones:true}" 

要:

-user 
    -deftones:true 

和去erstand如何检索参考数据,你必须看看我上面提到的文章

相关问题