2017-01-23 105 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结构的答案。希望有助于澄清我的答案。 –

相关问题