2016-05-06 2 views
1

я отправляю имена таблицы в FireBase с помощью цикла, который добавляет их с помощью метода childByAutoID() так:Получить автоматический идентификатор из FireBase JSON быстрого

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

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

который тогда выглядит в моей приборной панели:

enter image description here

Я тогда наблюдать зависимую таблицу следующим образом:

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; 
    }; 
} 

Очень просто положить Я хотел бы быть в состоянии получить UIDs каждого зависит от этого JSON словаря так я могу затем создать массив зависимых UIDs в NSUserDefaults, а также отсортировать словарь JSON как это:

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

Примечание стороны: я могу сохранить UIDs в то время, когда они CRE а также добавляется в базу данных, но факт заключается в том, что UID необходимо получить во время выполнения, если пользователь никогда не удаляет приложение.

ответ

4

Вы можете сделать следующее

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) 
} 
+0

Огромное спасибо! –

1

не могли бы вы сделать это:

var keys = Array(self.dependantsJSON.keys) 

Это было некоторое время, так как я работал с быстрым, но я уверен, что вы можете получить все ключи от возвращаемой снимка и создать массив из них.

+0

им удивлен, что я не думал об этом раньше. Спасибо! –

Смежные вопросы