簡體   English   中英

從FireBase JSON swift檢索自動ID

[英]Retrieve auto ID from FireBase JSON swift

我正在使用循環將名稱上傳到FireBase中的表,該循環使用如下的childByAutoID()方法添加名稱:

for dependent in dependentsArray
    {
         let dependentName = dependent.text.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())

         CURRENT_USER_DEPENDENTS_URL.childByAutoId().setValue(["name" : dependentName])
    }

然后在我的儀表板中如下所示:

在此處輸入圖片說明

然后,我觀察依存表,如下所示:

CURRENT_USER_DEPENDENTS_URL.observeEventType(.Value, withBlock: { snapshot in
        print(snapshot.value)
        self.dependentsJSON = snapshot.value as? [String : [String : String]]

        }, withCancelBlock: { error in
            print(error.description)
    })

上面代碼中的print語句生成以下JSON字典:

{
    "-KH3Cg0KFvMNEULYUezv" =     {
        name = one;
    };
    "-KH3Cg0LeTs54nbYonmv" =     {
        name = two;
    };
    "-KH3Cg0LeTs54nbYonmw" =     {
        name = three;
    };
    "-KH3Cg0LeTs54nbYonmx" =     {
        name = four;
   };
}

簡而言之, 我希望能夠從此JSON字典中獲取每個依賴項的UID,這樣我就可以在NSUserDefaults創建一個依賴UID數組,並對JSON字典進行如下排序:

    if let firstName = self.dependentsJSON?["-KH3Cg0LeTs54nbYonmx"]?["name"] {
        print(firstName)
}

旁注:我可以在創建UID並將其添加到數據庫時保存它們,但事實是,如果用戶卸載了該應用程序,則需要在運行時獲取UID。

您可以執行以下操作

var idList = [String]()

CURRENT_USER_DEPENDENTS_URL.observeEventType(.Value, withBlock: { snapshot in
    //print(snapshot.value)
    self.dependentsJSON = snapshot.value as? [String : [String : String]]

    for dependent in self.dependentsJSON{
         idList.append(dependent.key)
    }

    }, withCancelBlock: { error in
        print(error.description)
})

然后,您將訪問值

if let firstName = self.dependentsJSON?[idList[0]]?["name"] {
    print(firstName)
}

您不能這樣做:

var keys = Array(self.dependantsJSON.keys)

自從我使用swift以來已經有一段時間了,但是我很確定您可以從返回的快照中獲取所有鍵並從中創建一個數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM