2016-06-02 5 views
2

Привет Я пытаюсь получить данные из базы данных firebase. Вот мой кодИзвлечь данные из базы данных firebase

- (FIRDatabaseReference *) referenceFromURL:(NSString *)databaseUrl{ 

    commentsRef = [[FIRDatabase database] referenceFromURL:databaseUrl]; 
    return commentsRef; 
} 


-(void)viewWillAppear:(BOOL)animated 
{ 
    [commentsRef 
    observeEventType:FIRDataEventTypeValue 
    withBlock:^(FIRDataSnapshot *snapshot) { 
     NSDictionary * post = snapshot.value; 

    }]; 

} 

Ссылка успешно построен в базе данных, но код, написанный в блоке

«NSDictionary * сообщение = snapshot.value;»

не был выполнен.

+0

Если вы pu t точка останова в начале viewWillAppear, что такое ценность 'commentsRef'? –

+0

его ссылочная переменная .... FIRDATABASEREFERENCE * комментарии ref; , и я также проверил с вставкой точки останова. – salmancs43

+0

Возможно, что URL-адрес неверен, что у вас нет разрешения на чтение с данной конечной точки или что происходит некоторая другая ошибка чтения. Можете ли вы добавить 'withCancelBlock', чтобы поймать и зарегистрировать возможные ошибки? Это позволит лучше понять, почему вы не можете получить значение моментального снимка. См. [Первый пример в руководстве Firebase] (https://www.firebase.com/docs/ios/guide/retrieving-data.html#section-start) для получения дополнительной информации. –

ответ

0

Будет круто, если вы сможете обновить до firebase 3.0.

Если вы хотите взглянуть на MakinGIANST - Post о firebase, чтобы получить дополнительную информацию о том, как запрашивать и использовать новый api.

Это для Android, но его в Котлин так будет выглядеть Swift

0

Вы можете сделать это легко. Если вы хотите получить всю информацию, используя это, вы можете это сделать. Убедитесь, что вы сделали свой дб общественного

@property (strong, nonatomic) FIRDatabaseReference *ref; 

Определение собственности на интерфейсе затем

self.ref = [[FIRDatabase database] reference]; 
    [self.ref observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 
      NSDictionary *usersDict = snapshot.value; 

      NSLog(@"Information : %@",usersDict); 
     }]; 

Если вы хотите извлечь определенную часть с помощью этого вы можете сделать это

[[self.ref child:@"results"] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 

     NSDictionary *usersDict = snapshot.value; 

     NSLog(@"Info : %@",usersDict); 



    }]; 

Мой извлечённому JSon От пожарной базы

{ 
    "results" : [ 
     { 
"name":"test 1", 
"URL" : "URL STRING" 
     }, 
{ 
"name":"test 1", 
"URL" : "URL STRING" 
     }, 
{ 
"name":"test 1", 
"URL" : "URL STRING" 
     }, 
{ 
"name":"test 1", 
"URL" : "URL STRING" 
     } 
] 
} 
Смежные вопросы