2016-10-27 168 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如何檢索參考數據,你必須看看我上面提到的文章

相關問題