如何搜索Firebase以查看用户是否存在?
问题描述:
我试图搜索数据库中是否存在用户键入的电子邮件,而不是正在编码路径。例如,我的第一个孩子被称为“用户”,然后显示一个自动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");
}
}
];}
答
你可以通过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
}
}
我想'的NSString *记录= snapshot.value'是检查'snapshot'的错误方法。快照可以是NSDictionary,NSArray,NSNumber,NSString。如果'snapshot'不是'NSString',并且使用record.length,则会导致崩溃。尝试使用'[快照存在]'检查快照。 – trungduc
如果它不起作用,你能告诉我错误吗? – trungduc