2017-10-29 110 views
1

我试图搜索数据库中是否存在用户键入的电子邮件,而不是正在编码路径。例如,我的第一个孩子被称为“用户”,然后显示一个自动ID,然后“电子邮件”,然后用户的电子邮件。问题是如果我搜索用户和电子邮件应用程序将崩溃,它需要唯一的ID。即时通讯寻求刚检查过的所有电子邮件,以找出是否一个输入的用户存在如何搜索Firebase以查看用户是否存在?

- (IBAction)signIn:(id)sender { 

    FIRDatabaseReference *usersRef = [[FIRDatabase database] reference]; 

    [[[[usersRef child:@"User"] child:@"-Kx_mPZvAzxZ9U3U0VXq"] child:@"Email"] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 


     NSString *record = snapshot.value; 
     if(record.length > 0) { 
      NSLog(@"%@", record); 
     }else{ 
      NSLog(@"NO"); 
     } 

    } 
];} 
+2

我想'的NSString *记录= snapshot.value'是检查'snapshot'的错误方法。快照可以是NSDictionary,NSArray,NSNumber,NSString。如果'snapshot'不是'NSString',并且使用record.length,则会导致崩溃。尝试使用'[快照存在]'检查快照。 – trungduc

+1

如果它不起作用,你能告诉我错误吗? – trungduc

回答

0

你可以通过throught所有的人不知道的名字:

FIRDatabaseReference *usersRef = [[FIRDatabase database] reference]; 
let users = 
rootRef.childByAppendingPath(User) 
menuItems.observeSingleEventOfType(.Value, withBlock: { snapshot in 
    for id in snapshot.children.allObjects as! [FDataSnapshot] { 
     //Access to every email here 
    } 
} 
相关问题