2017-01-23 279 views
-1

我希望創建一個報告員工結構,我將推送功能生成的內部密鑰用作EID,並且將報告的員工EID嵌套到報告的員工EID下。因此,例如。如果一個經理有一個EID:-KbAGV6Uhg0BKK31HduN和報告工程師有一個EID:-Kb9ioY8dkBEOO46uX7t的JSON結構看起來就像有沒有辦法在沒有UID的情況下將數據推送到Firebase

{ 
    "-KbAGV6Uhg0BKK31HduN " : { 
     "reportingID" : "-Kb9ioY8dkBEOO46uX7t" 
    } 
    } 

而是因爲我現在用的推送功能,它看起來是這樣的:

{ 
    "-KbAGV6Uhg0BKK31HduN" : { 

    "-KbAH1RiVsz5FpSFudD2" : { 
     "reportingID" : "-Kb9ioY8dkBEOO46uX7t" 
    } 
    } 
} 

我不需要這些額外的鍵(-KbAH1RiVsz5FpSFudD2)可以做些什麼來避免它還是有別的像E1或在它的地方爲重點,一些其它容易標識符使結構過於複雜

+0

@Frank van Puffelen請看看 – joel

+0

有沒有必要ping我。我要麼有時間幫忙,要麼我不會,ping不會有什麼不同。 –

+0

@Frank van Puffelen是的,但你已經正確回答了大部分問題,因此我正在ping你,並且Firebase文檔非常不充分。 – joel

回答

1

你所描述的是Firebase處理事物的方法,如果你想使用push。

而是推的,你可以使用set方法做​​這樣的事情:

經理ID/directReports /的engineerID

其中的engineerID可能會包含有關工程師或一些關鍵的一些附加信息:值對在應用程序中有用。

的JSON結構是這樣的:

"ManagerGUID":{ 
    "directReports": { 
     "EngineerGUID":{ 
      "someinfokey":"somevalue" 
     } 
    } 
} 

這樣,如果你想有一個列表或可迭代,您可以使用原始密鑰工程師只需下載經理ID/directReports節點,並有個別對象。在轉換爲數組時可能會做一些額外的工作,但聽起來這是你想要做的。讓我知道,如果我脫離基地,我可以更新我的答案。

+0

我無法得到你想說的話我也需要一個Json結構 – joel

+0

@joel J_Everhart是對的。只需使用set函數而不是push。 您需要的一切都在Firebase文檔中。 https://firebase.google.com/docs/database/ios/read-and-write – ZassX

+0

@joel我更新了包含JSON結構的答案。希望有助於澄清我的答案。 –

相關問題