2016-09-23 3 views
1

Я пытаюсь извлечь данные из firebase и пробовать различные решения, но значение моментального снимка возвращает значение null. Данные создаются с помощью «childbyAutoID», и я хочу получить его с помощью текущего uid.Не удалось получить данные из firebase

Picture from Firebase

Ниже приведены три решения, я попытался

Решение 1:

NSString *ID = [FIRAuth auth].currentUser.uid; 
    [[[self.databaseRef child:@"User-Subscription"] child:ID] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 

     NSDictionary *childData = snapshot.value; 
     NSLog(@"%@",childData); //Returns null 
     // ... 
    } withCancelBlock:^(NSError * _Nonnull error) { 
     NSLog(@"%@", error.localizedDescription); 
    }]; 

Решение 2:

NSString *ID = [FIRAuth auth].currentUser.uid; //User ID 
    [[[self.databaseRef child:@"User-Subscription"] childByAutoId] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 

     NSDictionary *childData = snapshot.value; 
     NSLog(@"%@",childData); //Return null 
     // ... 
    } withCancelBlock:^(NSError * _Nonnull error) { 
     NSLog(@"%@", error.localizedDescription); 
    }]; 

Раствор 3:

NSString *ID = [FIRAuth auth].currentUser.uid; //User ID 
    [[[[self.databaseRef child:@"User-Subscription"] childByAutoId] queryEqualToValue:ID]observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 

     NSDictionary *childData = snapshot.value; 
     NSLog(@"%@",childData); //Return null 
     // ... 
    } withCancelBlock:^(NSError * _Nonnull error) { 
     NSLog(@"%@", error.localizedDescription); 
    }]; 

Любая помощь при указании ошибки очень ценится. Благодарю.

ответ

0

Я нашел решение, которое возвращает данные.

[[self.databaseRef child:@"User-Subscription"] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 

    NSDictionary *childData = snapshot.value; 
    NSLog(@"%@",childData); 
    // ... 
} withCancelBlock:^(NSError * _Nonnull error) { 
    NSLog(@"%@", error.localizedDescription); 
}]; 

Но теперь проблема в том, как я запрашиваю его с помощью «subs_ID», если есть 2,3 подписки пользователей, которые генерируются childbyAutoID?

+0

У меня такая же проблема. Я попробовал это решение, и я не получил результата. есть ли что-нибудь, что вы делаете с инициализацией databaseRef? Я не могу понять другую причину, по которой моя версия не получает сообщений. –

+0

Я ничего не делаю с инициализацией databaseRef, но вам также нужна аутентификация. Как, я использую FB логин с firebase, поэтому он автоматически аутентифицирован. Также вам нужно проверить свое дочернее имя, чтобы оно было написано правильно. – WasimSafdar

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