2016-09-21 3 views
0

Я просматривал API с сайта Firebase, однако, когда я печатаю свой снимок, я получаю все из моей базы данных.Извлечение данных из Firebase в Swift

Я пытаюсь напечатать только что заданное значение, которое является моей переменной: test_person_1.

import UIKit 
import Firebase 

class Test: UIViewController { 


override func viewDidLoad() { 
     super.viewDidLoad() 

    let ref = FIRDatabase.database().reference() 



    ref.observeEventType(.ChildAdded, withBlock: { (snapshot) in 



     var test_person_1 = ["full_name": "Test 1", "date_of_birth": "June 1, 2000"] 
     var Test_person_2 = ["full_name": "Grace Hopper", "date_of_birth": "July 1, 2000"] 
        let usersRef = ref.child("New child") 


     usersRef.setValue([test_person_1]) 


     print(snapshot) // 


    }) 

Json дерево: enter image description here

+0

Дайте свое дерево JSON. как текст без фрагмента – Dravidian

ответ

1

К тому времени, когда вы отпечатать снимок, значение не установлено на сервере еще.

Если вы хотите напечатать, когда данные были отправлены на сервер, добавить так называемый завершающие слушатель в setValue() вызова:

usersRef.setValue([test_person_1]) { (error, ref) in 
    print(error, ref) 
} 

Если нет ошибок, вы знаете, что значение на сервер - это то, что вы только что написали. Но если вы хотите прочитать значение с сервера, вам нужно будет подключить к нему слушателя:

usersRef.setValue([test_person_1]) { (error, ref) in 
    ref.observeSingleEventOfType(.Value) { (snapshot) in 
     print ("new value \(snapshot.value)") 
    } 
} 
+0

Благодарим за помощь! Что делать, если я хочу получить данные позже, а не точно, когда данные отправляются? Я пытаюсь работать над тем, что после того, как пользователь написал какой-то ввод в некоторых текстовых полях, на другом контроллере представления позже я буду извлекать и печатать эти входы. – Frederic

+0

Вы подключили слушателя с 'ref.observeEventOfType()' вне обратного вызова. Вы прочитали документацию [Firebase по извлечению данных] (https://firebase.google.com/docs/database/ios/retrieve-data) или воспользовались [iOS codelab] (https://codelabs.developers.google. ком/codelabs/firebase КСН-скор/# 0)? Оба эти понятия хорошо подходят. –

+0

Я весь день проводил на странице «Получение данных», однако должен признать, что я могу быть над моей головой. Довольно новый для программирования .. так что я просто мог понять это и, в конце концов, оказался здесь. Я ценю за вашу помощь, я посмотрю на все это. спасибо – Frederic

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