2016-11-23 72 views
0

在我的应用程序中,我使用firebase,我将主要用户数据保存在字典中,并将其保存为重要的(特征)行。用户可以添加,修改和删除数据。有好几次我从数据库中获得成功的数据,但出于某种原因,我得到了一个字典而不是数组。而且,这个数组包含NSNull应用程序和下降的对象。下面是我的代码检索数据:为什么Firebase返回数组而不是字典?

[self.ref observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 

TSFireUser *user = [[TSFireUser alloc] init]; 

NSString *token = [[NSUserDefaults standardUserDefaults] valueForKey:@"token"]; 
FIRUser *fireUser = [FIRAuth auth].currentUser; 


NSString *key = [NSString stringWithFormat:@"dataBase/users/%@/userData", fireUser.uid]; 
NSString *keyToParameters = [NSString stringWithFormat:@"dataBase/users/%@", fireUser.uid]; 

FIRDataSnapshot *fireUser = [snapshot childSnapshotForPath:key]; 
FIRDataSnapshot *fireUserParameters = [snapshot childSnapshotForPath:keyToParameters]; 

FIRDataSnapshot *userIdent = fireUser.value[@"userID"]; 
FIRDataSnapshot *userName = fireUser.value[@"displayName"]; 
FIRDataSnapshot *userEmail = fireUser.value[@"email"]; 
FIRDataSnapshot *userPhoto = fireUser.value[@"photoURL"]; 
FIRDataSnapshot *dateOfBirth = fireUser.value[@"dateOfBirth"]; 
FIRDataSnapshot *location = fireUser.value[@"location"]; 
FIRDataSnapshot *gender = fireUser.value[@"gender"]; 
FIRDataSnapshot *parameters = fireUserParameters.value[@"parameters"]; 


user.uid = (NSString *)userIdent; 
user.displayName = (NSString *)userName; 
user.email = (NSString *)userEmail; 
user.photoURL = (NSString *)userPhoto; 
user.dateOfBirth = (NSString *)dateOfBirth; 
user.location = (NSString *)location; 
user.gender = (NSString *)gender; 
user.parameters = (NSMutableDictionary *)parameters;}]; 

我会任何帮助

回答

0

我决定独自的问题表示感谢。底线是数据库中数据的关键字以行号@“1”,@“2”,@“3”表示,通过添加单词“key”,一切运行良好。结果,键看起来像这样:@“key1”,@“key2”@“key3”..

相关问题